Java - mySQL con JTable y Tablemodel

 
Vista:

mySQL con JTable y Tablemodel

Publicado por Leonardo Espin (3 intervenciones) el 15/12/2005 19:47:33
Hola...
He realizado un simple programa en Java
Uso unas JTable, y sus respectivos TableModel.

El problema es que no se como hacer para que al insertar un nuevo registro se actualizen los datos en la JTable

Aqui dejo todo el codigo para que lo vean...

http://www.uploading.com/?get=X4VT4X5J

La clase "ModeloDatos.java" la he obtenido de google, pero no se como adaptarla y usarla en la clase Principal.java

Desde ya muchas gracias. Espero su respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:mySQL con JTable y Tablemodel

Publicado por Gilberto (378 intervenciones) el 16/12/2005 05:28:19
Usa AbstractTableModel en lugar de TableModel, tiene implementados los métodos fireTableDataChanged, fireTableRowsAdded, fireTableRowsDeleted, etc. que son los que necesitas invocar cuando cambias tus datos.

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/AbstractTableModel.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mySQL con JTable y Tablemodel

Publicado por Leonardo (3 intervenciones) el 16/12/2005 20:35:47
Hola Gilberto
Gracias por responder

He estado buscando sobre el AbstractTableModel y he armado una pequeña clase, que puede obtener los datos de la tabla y mostrarlos en el JTable.

Lo que no puedo hacer ahora es actualizar los datos luego de que se ha insertado un nuevo registro... me da un error de numero de columnas, que no concuerdan... y no entiendo que puede ser...

Tienes idea de cual puede ser la causa de este error ? Y como corregirlo ?

El codigo se encuentra aqui...

http://www.uploading.com/?get=ON2RJPW6

Y otra consulta...

¿ Como y donde deberia agregar los metodos para eliminar, y modificar los datos de alguno de los registros, y q se actualicen ovbiamente los cambios en la JTable ?

Desde ya muchas gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mySQL con JTable y Tablemodel

Publicado por Gilberto (378 intervenciones) el 17/12/2005 15:34:16
Puedes hacer que tu clase derivada de AbstractTableModel implemente la interface TableModelListener, para que notifique a la tabla que un registro ha sido añadido, y debe actualizar su contenido

class myTableModel extends AbstractTableModel implements TableModelListener {

public int getColumnCount() {...}
public int getRowCount() {...}
public Object getValueAt(int r,int c) {...}
public void tableChanged(TableModelEvent e) {...}

}

Los cuatro métodos son los que se tienen que implementar para que la clase funcione.En tu clase donde declaras la variable del tipo myTableModel añades el escuchador(la tabla)

MyTableModel tablamodelo = new myTableModel();
JTable tabla = new JTable(tablamodelo);
tablamodelo.addTableModelListener(tabla);

finalmente, en la parte de código donde hagas la actualización de registros en la BD, añades una linea notificando que hay cambios

tablamodelo.fireTableRowsInserted(reg_ini,reg_fin);

donde reg_ini y ref_fin son el numero inicial y final de los registros añadidos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mySQL con JTable y Tablemodel

Publicado por Gilberto (378 intervenciones) el 17/12/2005 16:42:50
Corrección en la clase anterior: no es necesario implementar el TableModelListener

class myTableModel extends AbstractTableModel {

public int getColumnCount() {...}
public int getRowCOunt() {...}
public Object getValueAt(int r,int c) {...}

}

tambien el método tableChanged no es necesario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:mySQL con JTable y Tablemodel

Publicado por Leonardo (3 intervenciones) el 19/12/2005 19:54:11
Hola Gilberto
Gracias por responder

He recibido tu correo con tu ejemplo.

Como dices tu, he leido que no hacia falta el listener y lo otro, ya que parece ser que todo lo hace automaticamente.

Voy a ver tu ejemplo, y luego te comento como me ha ido

Gracias, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar