Como remover o conteúdo de uma JTable?

4 respostas
Alexandre_Gazola

Olá pessoal,

eu tenho uma JTable com um table model implementando por mim (estendendo o AbstractTableModel). O meu table model tem uma lista de objetos, com os quais a tabela tem o seu conteúdo preenchido.
Depois de ter preenchido a tabela, como posso fazer para remover esse conteúdo (quero remover os objetos do table model e da view)? (já experimentei criar um DefaultTableModel e passá-lo para a tabela, fazer o rowCount ser igual a 0, limpar a lista do meu modelo, mas nada funcionou)

obrigado

4 Respostas

A

Você utilizou o repaint do DefaultTableCellRenderer após a alteração do Model?

FredMP

Tenta passar um ArrayList vazio para seu TableModel e então passá-lo para o método tabela.setModel

mister_m

Pra trabalhar com Abstract / DefaultTableModel e refletir as atualizacoes na tela, existem n metodos fireXXX que voce pode chamar para forcar as atualizacoes do outro lado.

Contudo, esse nao eh o nivel de abstracao que voce quer usar pra trabalhar com Swing. Voce deve utilizar uma solucao de binding Swing, como o genesis. Voce poderia popular sua tabela assim:

@DataProvider(widgetName="nomeTabela")
public List<MeuBean> populaTabela() {
   // retorna a List
}

E repopula ou quando uma condicao muda, com @CallWhen, ou com uma chamada de API, com ActionInvoker.invoke(this, “populaTabela”).

Klark

Ola, se vc nao conseguiu ainda, faca o seu model receber;

model.setRowCount(0);
Criado 30 de novembro de 2006
Ultima resposta 22 de jan. de 2007
Respostas 4
Participantes 5