Boa tarde pessoal, preciso pintar apenas as linhas da coluna 7 conforme abaixo, mas meu código esta pintando a coluna toda, alguem poderia me dar uma luz de como pintar somente o que esta dentro do for.
publicvoidcarregaCorDia(){DefaultTableCellRenderercoluna=newDefaultTableCellRenderer();coluna.setForeground(Color.BLACK);coluna.setBackground(Color.YELLOW);for(inti=0;i<tabelaConsulta.getRowCount();i++){Stringvalor=tabelaConsulta.getValueAt(i,7).toString();intnovoValor=Integer.parseInt(valor);if(novoValor>0){System.out.println("Linha.: "+i+" | Valor coluna.: "+novoValor);tabelaConsulta.getColumnModel().getColumn(7).setCellRenderer(coluna);}}}
Não carrega mais o Jtable e a linha de código “int str = (int) value” da erro do tipo inteiro.
E se eu altero e converto de String para inteiro ele pinta a coluna toda ignorando a condição de maior que zero.
staroski
Como é seu TableModel?
Quais as condições para pintar determinada célula em cor diferente?
araujors
No meu table eu faço uma farredura na coluna 7 ao qual estão os valores que eu preciso, tudo que for maior que zero eu pinto se não deixo a cor normal. Eu fiz o código de varias formas, mas todas ele pinta a coluna toda. Mesmo usando DefaultTableCellRenderer tbm da erro.
for(inti=0;i<tabelaConsulta.getRowCount();i++){intvalor=Integer.parseInt(tabelaConsulta.getValueAt(i,7).toString());if(valor>0){System.out.println("Linha.: "+i+" | Valor coluna.: "+valor);tabelaConsulta.getColumnModel().getColumn(7).setCellRenderer(coluna);
}
staroski
Repetir a pergunta:
Como é seu TableModel?
Posta o código.
Quais as condições para pintar determinada célula em cor diferente?
Não posta o código, explica em que situação qual célula deve ser de qual cor.
araujors
Peço desculpas … mas consegui resolver na verdade eu estava fazendo um for errado eu estava passando uma String de um table sem converte-la para Integer usando o proprio setCellRenderer, agora funcionou!