Jtable + refresh automático + cellcolor

3 respostas
A

Bom dia!

Estou com um problema! Tenho uma JTable que pega seu conteúdo de uma instrução SQL. Esta funcionando normalmente. Cheguei a criar um botão que quando aperta da um refresh na tabela, porém gostaria q isso ficasse automático de 1 em 1 segundo. Como fazer isso sem a aplicação ficar lenta?

Outra pergunta:

Nessa mesma jtable, vou precisar que quando o valor da célula for menor que 0 fique vermelha, quando for maior fique verde e quando for igual fique amarela. Como fazer isso? Ja andei dando uma pesquisada e cheguei a ver algo a respeito de herdar atributos da classe DefaultTableCellRenderer, mas não sei como vou manipular eles!

Se puderem me ajudar agradeço!!

Abraço!

3 Respostas

T

acho q depende muito, do tamanho do banco de dados e do computador em que está sendo rodado o programa, quanto a como mudar a cor das celulas dê uma olhada nesse link e veja se ajuda em alguma coisa http://www.javaworld.com/javaworld/javaqa/2001-09/03-qa-0928-jtable.html
o primeiro trecho de codigo faz a celula ficar vermelha se o valor da coluna é menor q 0

A

Certo, obrigado pelo artigo das cores! foi muito util!

Mas ainda estou com o problema do refresh… Estava pensando que fazer uma thread pra isso poderia ajudar… mas não saberia como fazer tbm… não saberia como aplicar ela…

A situação atual é a seguinte:

Tenho uma jtable e consegui fazer ela ficar dando refresh usando a classe Timer. A cada 2 segundos a jtable da refresh e esta funcionando. Porém há 2 problemas.
1 - A aplicação fica lenta
2 - Quando vou abrir uma outra janela na aplicação q usa o mesmo objeto para motnar a tabela, nessa janela a jtable fica vazia…

Alguma sugestão?!?!

Abraço!!

B

Em relação ao refresh do conteúdo da Jtable pensei em vc adicionar um “listener” a esse objeto e dispará-lo dentro de uma Thread. A mudança de cor também poderia ser feita dentro da Thread, depois da consulta. Agora, de 1 em 1 segundo pode ser complicado dependendo da query que vc faz… até mais.

Criado 16 de novembro de 2006
Ultima resposta 17 de nov. de 2006
Respostas 3
Participantes 3