Pintar linha especifica em JTable - resolvido!

1 resposta
knik

Pessoal, eu queria pintar uma linha específica no JTable, assim: quando o estoque atingir o limite mínimo (quantidade for igual a 3, por exemplo), aquela linha específica fosse pintada em vermelho. Eu consegui fazer isto, mas só pinta a coluna quantidade. Eu queria pintar a linha toda!

fiz algo assim dentro do loop que preenche a minha tabela:

e na minha classe UtilTableRenderer:

Olha que beleza! pinta em RED todo o estoque igual ou abaixo de 3, mas somente na coluna “QUANTIDADE”. Como é que faz para pintar a linha toda?
É claro que só vai funcionar na coluna quantidade, pois é ela que é passado para o renderer, daí checa-se o seu value e pinta a coluna, ou não, conforme o estoque.
Todos os exemplos postados aqui no GUJ só funciona com apenas uma coluna, já testei todos.

1 Resposta

knik

OK, funcionou muito bem assim:

inicialmente mando que renderize todas as colunas tabela:
table.getColumn("ITEM").setCellRenderer(new UtilTableRenderer());
table.getColumn("QUANTIDADE").setCellRenderer(new UtilTableRenderer());
table.getColumn("PRODUTO").setCellRenderer(new UtilTableRenderer());
table.getColumn("PREÇO").setCellRenderer(new UtilTableRenderer());
E na minha classe UtilTableRenderer:
int quant= (int) table.getValueAt(row, 1);
        if (quant <= 3) {
            setBackground(Color.RED); 
            
        }else if (row % 2 == 0) {
            setBackground(Color.WHITE);
            
        } else {
            setBackground(Color.WHITE);             
        }
Falows...
Criado 14 de novembro de 2009
Ultima resposta 14 de nov. de 2009
Respostas 1
Participantes 1