Estoy haciendo un programa que tira de una base de datos Access en Java, el programa tira de dicha base de datos y saca los datos de cada empleado que tengo dado de alta. Además me muestra sus nóminas.
Me funciona bien de momento, os muestro como lo tengo:
-
Cuando le doy a las flechas me muevo por los empleados y en la tabla cargo sus nóminas.
-
Si le doy a nuevo me borra la tabla y los datos de los campos para que puedo escribir los datos del nuevo empleado, para luego darle a guardar y se almacena en la base de datos.
-
Si le doy a borrar me borra el empleado de la base de datos y del programa como es lógico.
Mi idea no es que funcione así, si no que al darle al botón "nuevo" que pasaría a llamarse "Editar" se despliegue un nuevo JFrame con los datos del empleado en el que estamos y ahi ya editemos sin problema.
Esto me funciona así:
Como veis me carga sin problemas los datos y se le doy a "Editar" guarda en la base de datos sin problema.
Ahora es cuando tengo el problema, cuando cierro la ventana de editar, me tiene que refrescar los datos editado en la primera ventana, pero no consigo hacerlo. Mi forma de pasar los datos es haciendo un variable pública y static así:
public static String DNIPublica;
Y entonces pueda usarla en el otro formulario, pero para mostrar los datos los tengo en un método:
public void mostrarEmpleados() throws SQLException {
try {
txtDni.setText(rsm.getString("DNI"));
txtNombre.setText(rsm.getString("Nombre"));
txtApellido.setText(rsm.getString("Apellido"));
txtNacimiento.setText(rsm.getString("Nacimiento"));
DNInomina = txtDni.getText();
conectarNominas(DNInomina);
} catch (Exception e) {
System.out.println("No se pueden mostrar los datos correctamente");
}
}
Y no se como podría usar dicho método en el otro formulario o como al cerrar la otra ventana se me refresque los datos.
El botón editar del segundo JFrame lo tengo así:
private void btnEditarMouseClicked(java.awt.event.MouseEvent evt) {
try {
// TODO add your handling code here:
//JOptionPane.showMessageDialog(null, "DNI:"+DNIJFrame);
rsm.updateString("DNI", txtDNI.getText());
rsm.updateString("Nombre", txtNombre.getText());
rsm.updateString("Apellido", txtApellido.getText());
rsm.updateString("Nacimiento", txtFecha.getText());
rsm.updateRow();
JOptionPane.showMessageDialog(null, "Trabajador Editado correctamente");
this.setVisible(false);
EmpresaJFrame jf = new EmpresaJFrame();
jf.mostrarEmpleados();
} catch (SQLException ex) {
Logger.getLogger(EditarJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
Muchas gracias!