Mudando cor da linha de uma JTable

1 resposta
PItapirema

Galera,

Tenho um JTable, que é populada com o banco, exsite o campo quantidade, o qual aparece na JTable e o campo QuantidadeCritica que não é visivel na tabela.

Preciso que, quando quantidade < quantidadeCritica, minha linha fique com uma cor diferenciada.

Na minha facade tenho o techo de codigo da função que popula minha JTable:

if (((ProdutoBean) bean).getQuantidade() < ((ProdutoBean) bean).getQuantidadeCritca()) {

dtm.addRow(new Object[]{((ProdutoBean) bean).getCodigo(), ((ProdutoBean) bean).getDescricao(), DateUtil.formataDataPt((((ProdutoBean) bean).getDataValidade())), this.quantidade});

}

O seguinte codigo, que alias peguei de um exemplo aqui no Guj:

tabela.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {

                        @Override
                        public Component getTableCellRendererComponent(JTable table, Object value,
                                boolean isSelected, boolean hasFocus, int row, int column) {
                            super.getTableCellRendererComponent(table, value, isSelected,
                                    hasFocus, row, column);
                            if (row == 2) {
                                setBackground(Color.GREEN);
                            } else {
                                setBackground(null);
                            }
                            return this;
                        }
                    }

A pergunta é: Existe uma maneira para que quando a Jtable estiver sendo populada no codigo, ela retorne a linha a qual populou ?

Minha ideia era colocar, estas linhas em um arrayList e assim colocar um loop no segundo codigo para mudar a cor das linhas.

Existe uma maneira mais facil ?

O principal seria, eu saber em quais linhas encontram-se determinados valores

Desde já, agradeço! :wink:

1 Resposta

ViniGodoy

Existe, faça um TableCellRenderer personalizado.

Aliás, isso já foi perguntado diversas vezes aqui no GUJ. Se usar a busca ou o Google, provavelmente vai achar a resposta de como resolver o seu problema. :wink:

Criado 12 de abril de 2008
Ultima resposta 12 de abr. de 2008
Respostas 1
Participantes 2