[Resolvido] JTable, e os Listeners ..
Galera, eu tenho uma dúvida /problema em relação ao Listener e o objeto recebido por ele, que é adicionado quando um valor é alterado na tabela, enfim ..
Vendo o seguinte código:
package customers;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import view.CustomersList;
public class Customers {
public static void main(String[] args) throws SQLException {
DefaultTableModel model = new DefaultTableModel();
model.addColumn("Código");
model.addColumn("Nome");
model.addColumn("Sobrenome");
while (result.next()) {
model.addRow (
new Object[]{
result.getString("codigo"),
result.getString("nome"),
result.getString("sobrenome")
}
);
}
model.addTableModelListener(new TableListener());
CustomersList lista = new CustomersList();
final JTable table = lista.getTable();
table.setModel(model);
table.setColumnSelectionAllowed(false);
lista.setVisible(true);
}
}
Eu crio meu table model, e adiciono um Listener pra quando um valor for alterado, esse listener seja chamado, então ..
package application;
import java.util.Arrays;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
class TableListener implements TableModelListener {
@Override
public void tableChanged(TableModelEvent e) {
if ( e.getType() == TableModelEvent.UPDATE ) {
System.out.println("Updating ...\n");
TableModel model = (TableModel)e.getSource();
String columnName = model.getColumnName(e.getColumn());
Object data = model.getValueAt(e.getFirstRow(), e.getColumn());
System.out.println(Arrays.asList(data));
}
}
}
Funcionando normalmente, só que ... pra eu montar a query de UPDATE e/ou DELETE, eu preciso de um identificador, que no caso seria a coluna código, o problema: o listener esta pegando DEPOIS da alteração .. alguma idéia pra pegar o código ANTES dessa linha ser alterada e montar o update utilizando o **WHERE codigo ... **
A Documentação do Java é péssima, não achei muita coisa que me fosse util, e a maioria dos exemplos que vi é superficial em partes, daí fica difícil achar algo sobre..
[]'s
Discussão (4)
Carregando comentários...