Limpando um JTable

7 respostas
P

Dae povo

O meu JTable chega num limite de 5 linhas, quando passa ele cadastra os itens no banco de dados, mas dae eu quiria que essas 5 linhas se apagasse, deixando apenas a 1 linhas em branco!!! Eu fiz um loop assim e deu erro no console:

for (int i = 0; i < 5; i++) { tabela.removeRow(i); }

Por que não dá certo!? Além de jogar um monte de treco no console, ele ainda deixa umas 3 linhas pra remover, qual o jeito certo de fazer isso?!

Obrigado

7 Respostas

D

Trabalhe com TableModel…

ai basta voce criar um novo modelo para a tabela

P

“denis_arruda”:
Trabalhe com TableModel…

ai basta voce criar um novo modelo para a tabela

Eu já uso isso, poderia me dizer como!? Somente criar um novo modelo?! Mas dae eu teria que criar o JTable de novo!?

P

Não deu certo:

public void limpaTable() { String[] colunas = {"Horário","Data","Número Sorteado"}; String[][] dados = { {null,null,null} }; tabela = new DefaultTableModel(dados, colunas); }

D

faz um

jtable.setModel()
P

Cara deu erro na hora de compilar, veja:

bash-3.00$ javac BichoCadastro.java BichoCadastro.java:223: setModel(javax.swing.table.TableModel) in javax.swing.JTable cannot be applied to () tbInfo.setModel(); ^ 1 error

tbInfo é o nome do JTable, e também tentei com o Model criado, chamado tabela:

bash-3.00$ javac BichoCadastro.java BichoCadastro.java:223: cannot find symbol symbol : method setModel() location: class javax.swing.table.DefaultTableModel tabela.setModel(); ^ 1 error

Só exite esse modo pra limpar o JTable?!

D

na verdade eh assim:

jTable.setModel(tableModel);
P

Cara depois de muito pensar descobri porque o removeRow não estava dando certo e fiz uma rotina que deu certinho, só que ficou meio grande né, se você tivesse me respondido antes teria evitado eu queimar tanto neurônio :lol:

Vou por aqui, caso alguém precise também:

public void limpaTable() { for (int i = 4; i > 0; i--) tabela.removeRow(i); tabela.setValueAt("",0,0); tabela.setValueAt("",0,1); tabela.setValueAt("",0,2); }

Eu poderia ter feito outro loop ali pra deixar a linha limpa, mas como são 3 colunas somente, nem tem graça, então eu fiz na raça mesmo hehe!! O segredo era pura lógica, apagar de trás pra frente, e os index começam por 0 e não 1, e eu estava usando o número 5 ao invés do 4, por isso dava erro porque não existe uma linha 5, que no caso seria 6!!!

Mas eu vou fazer um teste com o seu agora, e se ficar melhor e mais limpo eu opto pelo seu!!!

Valeu

Flw

Obs> Acabei de testar e não deu certo (tbInfo.setModel(tabela);), fico com o removeRow mesmo

Criado 23 de fevereiro de 2005
Ultima resposta 24 de fev. de 2005
Respostas 7
Participantes 2