Preciso fazer uma tabela que a cada mudança de determinada coluna mude a cor das células.
Até aí tudo bem.
Acontece que fiz uns exemplos (criando uma classe que herda de DefaultTableCellRenderer) mas o cellrenderer fica alterando a cor de fundo enquanto eu seleciono as
células ou navego na tabela com o scroll.
Alguém pode me dar uma sugestão de como resolvo isso ?
Estou pesquisando sobre como posso remover o cellrenderer após ele ‘pintar’ uma vez a tabela.
Será que isso resolveria ?
Acredito que o problema na verdade seja com o renderer que você criou. Acho que removê-lo não vai ser a melhor solução.
Sugiro que faça algum tratamento usando o parâmetro isSelected e verifique se as variáveis que o renderer usa para definir as cores não estão mudando conforme o scroll.
Caso os problemas continuem, poste seu código.
RichardVaugh
pois é, meu código é simples, eu só verifico se o valor da célula anterior de determinada coluna alterou, se alterou eu pego a cor daquela celula e ‘inverto’.
caso contrário eu copio…
acontece que eu não entendi muito bem como funciona esse processo de pintar as células em um jtable, estou pesquisando sobre isso.
quando eu uso o scroll do jscrollpane em direção a base da tabela ele pinta direito, mas se eu oscilar ele pinta errado.
deve existir alguma forma de ativar um evento para pintar corretamente, pois ele deixa células pintadas pela metade…
davidtiagoconceicao
O que é a variável Y?
Acredito que seu problema esteja nesta comparação de getValueAt com Y.
Sugiro que teste em que condição o programa entra durante o scroll.
Se ficar muito difícil de fazer isso com breakpoint, coloque mensagens de sysout do tipo “entrou no if”.
Pois é, como eu imaginava o renderer é chamado em todo instante que há movimento em jtable, selecão e tudo mais…
sobre o meu X e Y eu uso na verdade as próprias variáveis que recebo no método…