Estoy haciendo un proyecto de registro tipo CRUD cpn base de datos en mysql, me he apoyado de diferentes videos, intento realizar un registro. Tengo un JTable en Un JFrame, al dar click en un menú este me genera un JDialog solicitando la información como id, nombre, apellido. este se guarda en la base de datos y se muestra en un JTable en el JFrame inicial, se registra de maner correcta, pero tengo un metodo llamado "llenarTabla" este me sirve para agregar los valores de la BD a la tabla, al momento de hacer el registro de un usuario lo hace correctamente pero no se me carga el valor a la tabla y ahi es cuando me lanza dicho error, tengo que reiniciar el software para que el usuario que registre se añada a la tabla. estos son los codigos que utilizo: PD: EN EL FONDO PUEDEN EVIDENCIAR EL JDIALOG DE REGISTRO Y DEBVAJO LA TABLA DE LOS VALORES QUE SE INGRESAN EN ESTE.
public void llenar_tabla(String valor){
String[] titulos= {"ID", "Identificacion", "Nombres", "Apellidos", "Curso", "Estado"};
String[] registros= new String[6];
String SQL= "SELECT * FROM estudiantes WHERE CONCAT (Identificacion, ' ', Nombres, ' ', Apellidos) LIKE '%"+valor+"%'";
modelo= new DefaultTableModel(null, titulos);
Conectar cc= new Conectar();
Connection cn= cc.conexion();
try {
Statement st= cn.createStatement();
ResultSet rs= st.executeQuery(SQL);
while(rs.next()){
registros[0]= rs.getString("ID");
registros[1]= rs.getString("Identificacion");
registros[2]= rs.getString("Nombres");
registros[3]= rs.getString("Apellidos");
registros[4]= rs.getString("Curso");
registros[5]= rs.getString("Estado");
modelo.addRow(registros);
}
tabla_es.setModel(modelo);
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
String sql= "";
Conectar cc= new Conectar();
Connection cn= cc.conexion();
sql= "INSERT INTO estudiantes (Identificacion, Nombres, Apellidos, Curso, Estado) VALUES(?,?,?,?,?)";
try{
PreparedStatement pst= cn.prepareStatement(sql);
pst.setString(1, txt_Ide.getText());
pst.setString(2, txt_Nom.getText());
pst.setString(3, txt_Ape.getText());
pst.setString(4, txt_Cur.getText());
pst.setString(5, combo_es.getSelectedItem().toString());
int n= pst.executeUpdate();
if(n > 0){
JOptionPane.showMessageDialog(null, "Registro completado!");
x.llenar_tabla("");
LimpiarCajas();
} else {
JOptionPane.showMessageDialog(null, "Registro fallido!");
LimpiarCajas();
}
con.close();
}catch(Exception e){
System.out.println(e);
}