Bom dia, tenho um Jtable e gostaria de executar uma ação quando uma célula da tabela muda. Qual evento é disparado quando isso ocorre?
Valeu.
É disparado o evento tableChanged.
Agora, quem dispara esse evento não é o JTable, mas sim, o TableModel.
Aliás, muitas vezes é melhor tratar coisas que ocorrem na modificação do JTable no seu próprio TableModel.
Bom dia ViniGodoy, obrigado pela ajuda e atenção.
Você tem algum link que explique sobre isso ou um exemplo de como definir este evento?
Estou iniciando agora e estou confuso :S
Um abraço.
Bom, aqui tem um link que explica como fazer seu próprio TableModel:
http://www.guj.com.br/posts/list/132698.java#714736
E aqui um que explica esse evento em especial:
http://www.java2s.com/Tutorial/Java/0240__Swing/ListeningtoJTableEventswithaTableModelListener.htm
Mas basicamente é só colocar um:
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
System.out.println(e);
}
});
Muito obrigado, resolveu meu problema!
Um abraço, tudo de bom.
De qualquer forma, se você estiver usando o DefaultTableModel, considere fortemente a possibilidade de parar de usa-lo e fazer seu próprio TableModel. Além de lento e de ocupar muita memória, o DefaultTableModel é bem mais difícil de usar e deixa seu código super bagunçado.