Como actualizar JTable!!! por favor ayuda!!!!!!

Luis
22 de Abril del 2004
Realmente se me quemaron los papeles y no se que mas hacer.
Trabajo con el netBeans como entorno de desarrollo, tengo 3 tablas las cuales cargo desde la base de datos y en las cuales realizo altas, modificaciones. Cuando modifico no hay problema ya que actualizo la tabla sin problemas, el problema es cuando realizo un alta, opte por cargar la base de datos cada vez que realizo un insert ya que tengo un campo clave autonumerico y lo tengo que mostrar en la tabla.
El problema es que cuando hago el alta no me actualiza !!!!!!!!!!!!!!!!!!!! la primera vez y no se porque!!!!!! la segunda vez lo hace, pero no deberia ser asi. Aqui esta el codigo de la clase que define el modelo:

class MyTableModel extends
javax.swing.table.AbstractTableModel {
String[] columnNames;
Object[][] data;

public void setColumns(String[] columns){
columnNames=columns;
}

public void setDataRows(Object[][] dataRows){
data=dataRows;
}

public int getColumnCount() {
return columnNames.length;
}

public int getRowCount() {
return data.length;
}

public String getColumnName(int col) {
return columnNames[col];
}

public Object getValueAt(int row, int col) {
return data[row][col];
}

public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}

public boolean isCellEditable(int row, int col) {
return false;
}

public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
}

} // End class of MyModelTable

En los dos primeros metodos les paso los titulos y los datos y despues hago un repaint, seria asi:

MyTableModel mtm=new MyTableModel()
mtm.setColumns(titulosColumnas);
mtm.setDataRows(datos);
miTabla.setModel(mtm);
miTabla.repaint();

Asi lo hago quizas sea equivocado, agradeceria me digan cual es el problema o sus comentarios porque ya se me terminaron las ideas con esto.

Gracias.
Luis.


Pablo
22 de Abril del 2004
Para actualizar la tabla debes lanzar un evento que indique que la tabla se ha modificado:

("tu JTable").tableChanged(new TableModelEvent("el TableModel de tu JTable"));

Salu2

Luismahou
22 de Abril del 2004
Te recomendaría no heredar de AbstractTableModel, y usar la clase DefaultTableModel. Esta clase hace lo que hace la tuya, y un montón de cosas más. Una de ellas es mandar eventos cuando se modifican, añaden o eliminan datos. Esos eventos los recoge la JTable y se refresca.

Saludos, Luismahou