Ola Pessoal.
Estou com uma aplicacao JDialog com um JTable e um botao “Incluir”, o botao chama uma segunda JDialog com um cadastro, quando eu faco o cadastro a janela se fecha o insert no banco e feito, mas a JTable naum e atualizada…
Bom eu sei q eu tenho q implementar a inteface TableModelListener, mas eu to conseguindo ententer como fazer isso… ja dei uma olhada em uma classe exemplo da Sun.
segue abaixo:
/**
* In a chain of data manipulators some behaviour is common. TableMap
* provides most of this behavour and can be subclassed by filters
* that only need to override a handful of specific methods. TableMap
* implements TableModel by routing all requests to its model, and
* TableModelListener by routing all events to its listeners. Inserting
* a TableMap which has not been subclassed into a chain of table filters
* should have no effect.
*
* @version 1.4 12/17/97
* @author Philip Milne */
import javax.swing.table.*;
import javax.swing.event.TableModelListener;
import javax.swing.event.TableModelEvent;
public class TableMap extends AbstractTableModel implements TableModelListener
{
protected TableModel model;
public TableModel getModel() {
return model;
}
public void setModel(TableModel model) {
this.model = model;
model.addTableModelListener(this);
}
// By default, Implement TableModel by forwarding all messages
// to the model.
public Object getValueAt(int aRow, int aColumn) {
return model.getValueAt(aRow, aColumn);
}
public void setValueAt(Object aValue, int aRow, int aColumn) {
model.setValueAt(aValue, aRow, aColumn);
}
public int getRowCount() {
return (model == null) ? 0 : model.getRowCount();
}
public int getColumnCount() {
return (model == null) ? 0 : model.getColumnCount();
}
public String getColumnName(int aColumn) {
return model.getColumnName(aColumn);
}
public Class getColumnClass(int aColumn) {
return model.getColumnClass(aColumn);
}
public boolean isCellEditable(int row, int column) {
return model.isCellEditable(row, column);
}
//
// Implementation of the TableModelListener interface,
//
// By default forward all events to all the listeners.
public void tableChanged(TableModelEvent e) {
fireTableChanged(e);
}
}
Ai vai as minhas duvidas:
1º duvida:
protected TableModel model;
public TableModel getModel() {
return model;
}
public void setModel(TableModel model) {
this.model = model;
model.addTableModelListener(this);
}
eu naum estou entendo essa parte… eu ja naum estou criando um modelo na classe, pq eu preciso receber outro.
2º Duvida
// By default forward all events to all the listeners.
public void tableChanged(TableModelEvent e) {
fireTableChanged(e);
}
eu naum estou entendendo esse metodo… como ele faz essa atualizacao… ele faz uma nova consulta no banco?
Bom pessoal ficou um pouco grande mas acho q da para entender… :thumbup:
Falow.
agradeco desde Já.