Atualizar valores da tabela

7 respostas
A

Pessoal, to precisando mesmo da ajudinha de vcs…

Bom, eu tenho uma tabela onde uma das colunas é um objeto do tipo boolean, o qual fica representado na tabela como um check box, certo!
Então, qdo eu instancio esta tabela, eu passo no construtor o modelo que criei, o qual extende de abstractTableModel (JTable table = new JTable(meuModelo)).

Neste meu modelo, tem o método setValueAt(object, row, col), onde eu atribuo um valor para determinada celula da minha tabela. Entao, minha dúvida é:"Porque quando eu chamo o método setValueAt() o valor da célula não muda na tabela(no caso o boolean, se eu passar ‘true’ deveria marcar o checkbox), sendo que se eu jogar depois pra saida padrão o getValueAt() este valor está alterado?"
Precisa chamar algum método como o repaint(não este, pois já tentei) pra recriar a tabela com base nos novos valores setados?

OBS:
Até o momento, está funcionando quase que perfeitamente, pois traz os valores do bd, marca os check box(boolean) com o mouse, salva no bd, carrega com os ítens checados(qdo for o caso), etc…

Um abraço,
Aislan

7 Respostas

A

“Pra que fique mais claro, o que eu estou fazendo é chamar o método setValueAt(Object, row, col) através de um botão, com o objetivo de checar todos os check box(marcar os booleans como true) em todas as linhas na coluna zero(fiz um laço pra isso claro, e está OK). Como eu já disse, se eu mandar pra saida padrão os novos valores, estão todos setados como ‘true’, porém, não atualiza na tabela”.

… mais um detalhe. Dei mais uma pesquisada na net e o metodo fireTableCellUpdated(row, col), o qual deve ser chamado dentro do método setvalueAt(Object, row, col) após o novo valor ser atribuido, tem a função de fazer esta atualização na tabela.
Bom, no meu está assim, mas continua não atualizando minha tabela …

Pessoal, to precisando mesmo resolver esta parada!

Um abraço a todos,
Aislan

luiz_renato

Meu caro ,

Vc faz a atulização da tabela mudando os valores do model e depois usando jtrable.setModel ( seuModel ) ?

Renato

A

Renato,

Eu apenas mudo os valores por setValueAt(object, row, col). Quando eu crio a tabela, eu passo no construtor de JTable o nome do modelo que é uma subclasse q extende abstractTableModel. Ex: table = new Jtable(new MeuModelo()). Nesse caso, o q devo fazer?

Aislan

A

Renato,

Eu apenas mudo os valores por setValueAt(object, row, col). Quando eu crio a tabela, eu passo no construtor de JTable o nome do modelo que é uma subclasse q extende abstractTableModel. Ex: table = new Jtable(new MeuModelo()). Nesse caso, o q devo fazer?

Aislan

luiz_renato

Olha só :

Como eu costumo fazer ( e funciona ) : implemento o model armazenando os dados num ArrayList ; quando quero mudar o valor de uma linha na JTable ( no teu caso são vários e vc deve fazer um laço/ verificar quais linhas modificar … ), pego o row especifico da JTable , uso como indice p/ procurar no meu Arraylist do model , com esse objeto localizado mudo o valor que quero e depois dou jtable.setModel ( meuModelo ) aí atualiza a exibição ( claro implemento o método setValueAt no model , porém não o uso diretamente ) .
Penso assim pq o model é justamente onde vc quarda os dados propriamente ditos da tabela , entao evito tentar muda-los diretamente na jtable .
Qualquer coisa , manda o código p/ dar uma olhada .
[]´s
Renato

A

Renato, dá uma olhada então no fonte por gentileza…

A

Rento, vc chegou a dar uma olhada?

Criado 10 de abril de 2007
Ultima resposta 13 de abr. de 2007
Respostas 7
Participantes 2