Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > actualizar jtable en tiempo de ejecucion

Hola que tal buenas

tengo una duda estoy utilizando netbeans y mysql como base de datos

ahora la duda es que quiero actualizar un jtable en tiempo de ejecución
es decir que si inserto un registro en la base de datos este se muestre de forma automática en el jtable sin necesidad de presionar el botón de mostrar datos(este botón hace una consulta a la base de datos y muestra los registros en el jtable) leyendo por ai me encuentro con que modelo.fireTableDataChanged(); este método según avisa los cambios de la tabla pero la verdad que no me funciona ayuda

junio 18, 2014 | Unregistered CommenterJoker

Estaría mejor publicado en el foro JavaSE.

De todos modos, esa inserción en la base de datos, ¿desde dónde se realiza?.
Ese método que mencionas solo funciona cuando se han hecho cambios en el modelo de la tabla, y no avisa de cambios en la tabla, sino que informa al los renderers de la tabla que el modelo ha cambiado, y debe actualizarse la visualización.

Si quieres lograr lo que pretendes, cuando haces esa inserción (suponiendo que se realiza desde la misma aplicación) deberías cambiar apropiadamente el modelo de la tabla.
Tampoco mencionas si usas el modelo por defecto, o uno propio.

junio 18, 2014 | Registered Commenterchoces

Hola Joker. Te recomiendo este tutorial:

https://m.youtube.com/watch?v=65tXYULxKeM

Saludos.

junio 18, 2014 | Registered Commenterjrichard

la vdd soy novato y modificar clases aun no experimento con eso

y si utilizo el modelo por defecto de la tabla que es el defaultablemodel

junio 19, 2014 | Unregistered CommenterJoker

Lo que debes hacer es poner en un método la carga del tablemodel desde la base de datos y asignacion a la tabla y ejecutar este método cada vez que hagas un cambio a la base de datos.

ejemplo:
void MostrarTrabajadores(){
try{
ResultSet r=sentencia.executeQuery("select * from Trabajadores");
String titulos[]={"DNI","Nombre","Apellidos","Sueldo","Fecha","Matricula"};
m=new DefaultTableModel(null,titulos);
String fila[]=new String[6];
while(r.next()){
fila[0]=r.getString("DNI");
fila[1]=r.getString("nombre");
fila[2]=r.getString("apellidos");
fila[3]=r.getString("sueldo").replace(".",",");
fila[4]=r.getString("fecha");
fila[5]=r.getString("matricula");
m.addRow(fila);
}
tabla.setModel(m);//la tabla se actualiza.
HacerCalculos(r);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Error al extraer los datos");
}
}

metodo para agregar:

private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dialogoNuevo.setSize(300,400);
dialogoNuevo.setModal(true);
dialogoNuevo.setVisible(true);
MostrarTrabajadores();
}

obviamente no esta el codigo completo pero la idea es mostrar la actualizacion de la tabla al llamar al metodo MostrarTrabajadores().

junio 19, 2014 | Unregistered Commentercommodore64