Implementación de Formulario en Java Swing con Conexión JDBC a Base de Datos
Implementación de Formulario en Java Swing con Conexión JDBC
El siguiente programa implementa una interfaz gráfica de usuario (GUI) interactiva con la biblioteca Java Swing y gestiona la persistencia de datos en una base de datos relacional mediante la API JDBC.
Código Fuente
package multiplespantallas;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class Insertar extends JFrame {
private JLabel lbl1, lbl2, lbl3;
private JTextField txt1, txt2, txt3;
private JPanel pnl1, pnl2;
private JButton btninsertar, btncancelar;
public Insertar() {
lbl1 = new JLabel("Código");
lbl2 = new JLabel("Nombre");
lbl3 = new JLabel("N° horas");
txt1 = new JTextField(10);
txt2 = new JTextField(10);
txt3 = new JTextField(10);
btninsertar = new JButton("Insertar");
btncancelar = new JButton("Cancelar");
pnl1 = new JPanel();
pnl2 = new JPanel();
pnl1.setLayout(new GridLayout(3, 2));
pnl1.add(lbl1);
pnl1.add(txt1);
pnl1.add(lbl2);
pnl1.add(txt2);
pnl1.add(lbl3);
pnl1.add(txt3);
pnl2.setLayout(new FlowLayout());
pnl2.add(btninsertar);
pnl2.add(btncancelar);
setLayout(new FlowLayout());
add(pnl1);
add(pnl2);
setSize(300, 300);
setVisible(true);
btninsertar.addActionListener(new Manejador());
btncancelar.addActionListener(new Manejador());
}
public static void main(String[] args) {
Insertar a = new Insertar();
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private class Manejador implements ActionListener {
public void actionPerformed(ActionEvent z) {
if (z.getSource() == btninsertar) {
try {
String sql = "insert into asignatura values (" + txt1.getText() + ",'" + txt2.getText() + "'," + txt3.getText() + ")";
Connection cnn = null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cnn = DriverManager.getConnection("jdbc:odbc:Multipantallas", "admin", "aqi1975");
JOptionPane.showMessageDialog(null, "Conexión creada");
Statement str = cnn.createStatement();
int i = str.executeUpdate(sql);
if (i > 0) {
JOptionPane.showMessageDialog(null, "Se insertó un elemento");
} else {
JOptionPane.showMessageDialog(null, "No se insertó el elemento");
}
cnn.close();
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, "Excepción: " + ex.getMessage());
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Excepción: " + e.getMessage());
}
}
if (z.getSource() == btncancelar) {
txt1.setText("");
txt2.setText("");
txt3.setText("");
}
}
}
}Descripción de Componentes
- JFrame: Contenedor principal que aloja los elementos gráficos de la ventana.
- Layouts (GridLayout y FlowLayout): Organizan la distribución espacial de las etiquetas, campos de texto y botones.
- JTextField y JLabel: Permiten etiquetar y capturar información del usuario (código, nombre y horas de la asignatura).
- ActionListener: Manejador de eventos que detecta las pulsaciones sobre los botones Insertar y Cancelar.
- JDBC (Java Database Connectivity): Gestiona la conexión mediante el controlador ODBC y ejecuta la sentencia SQL INSERT en la base de datos.