Java - Actualizar dinamicamente un JTable

 
Vista:

Actualizar dinamicamente un JTable

Publicado por Victor (12 intervenciones) el 06/04/2004 17:36:46
Buenos dias.

Tengo una aplicación con un JTree y un JTable creado mediante un
AbstractTableModel.
El funcionamiento es que seleccionan un fichero del JTree, y el contenido lo
visualizo en el JTable. De momento, si vuelvo a pulsar en el JTree,
visualizo los datos, pero combinados con la anterior seleccion, o sea un
lio del grande.
Entonces mi pregunta es, como se tiene que hacer para que cuando vuelva a
pulsar un nuevo nodo en el JTree, los datos del JTable se actualicen, sin
mostrarme los antiguos datos. Por lo que he podido investigar tiene algo
que ver con el "fire..." He visto un ejemplo, pero no consigo donde tengo
que ubicarlo.
El ejemplo se puede encontrar aqui:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
Asi mismo el evento que uso para el control del click en el JTree es el
siguiente:
Arbol.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent evt) {
ArbolvalueChanged(evt);
}
});
Y dentro del ArbolvalueChanged(evt) es donde creo el modelo de tabla que le
paso al constructor del JTable.

Gracias si alguien puede echarme una mano
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:Actualizar dinamicamente un JTable

Publicado por chuidiang (532 intervenciones) el 07/04/2004 10:00:45
El fire debería dispararse solo.
Haz que tu modelo de tabla sea un DefaultTableModel. Asegurate de vaciarlo por completo antes de meterle nuevos datos.

Si reutilizas el DefaultTableModel borrando sus datos y metiendo los nuevos, el JTable debería enterarse sin necesidad de que se lo pases por segunda vez.

Si creas un nuevo DefaultTableModel para la segunda vez, bastaría con llamar al metodo setModel() del JTable. Este debería actualizarse solo.

Se bueno.
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:Actualizar dinamicamente un JTable

Publicado por Victor (12 intervenciones) el 07/04/2004 14:42:52
Pero es que yo no uso un DefaultTableModel, sino que uso un AbstractTableModel. Tengo una clase que es "ModeloTabla extends AbstractTableModel". Que ahi donde creo el modelo de tabla que despues recibe el JTable.

Y otra cosa, como podría borrar la tabla? por lo que he visto, me podria servir el metodo setRowCount()? pero lo estoy intentanto poner en el Abstract con una funcion que se llame "VaciarTabla", pero la cosa no rula.

Y gracias por la ayuda
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:Actualizar dinamicamente un JTable

Publicado por chuidiang (532 intervenciones) el 08/04/2004 10:54:50
Deberías borrar los datos del modelo. A tu ModeloTabla debes ponerle metodos (si no los hereda de AbstractTableModel) para borrar todos los datos dentro del modelo. Eso hará que el JTable se actualice automáticamente.

Se bueno.
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:Actualizar dinamicamente un JTable

Publicado por chuidiang (532 intervenciones) el 09/04/2004 09:59:16
Oye, me estoy dando cuenta de una cosa.
Si usas el DefaultTableModel no necesitas llamar a los fire, ya que el se encarga de hacerlo.
En tu caso, heredas de AbstractTableModel que no llama a los fire, eres tu el que debe llamarlos.
En tu metodo VaciarTabla(), ademas de borrar todos los datos del modelo, luego debes llamar después al metodo fire de AbstractTableModel que mas se parezca a tu caso. Asi de memoria, puede ser algo como fireTableRowsDeleted ().

Se bueno.
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