Qual evento é disparado quando uma célula de um JTable muda? (Resolvido)

5 respostas
P

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.

5 Respostas

ViniGodoy

É 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.

P

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.

ViniGodoy

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); } });

P

Muito obrigado, resolveu meu problema!

Um abraço, tudo de bom.

ViniGodoy

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.

Criado 1 de março de 2010
Ultima resposta 1 de mar. de 2010
Respostas 5
Participantes 2