JTable - Alterar cor de background de uma única linha

Java

09/04/2009

Bom dia prezados. Como faço pra altera a cor de background de uma única linha de um JTable? Por exemplo, tenho uma tabela com 30 linhas, e quero que a linha de índice 4 fique com o background na cor cinza. Desde já agradeço.
Anderson Freitas

Anderson Freitas

Curtidas 0

Respostas

Deh

Deh

09/04/2009

Meu, eh bem simples isso.... basta na sua JTable adicionar esta linha.... mas vc tera que alterar a cor das letras.... blz..... na 1 linha altera o back e a 2 linha altera as letras... coloquei no fundo uma cor mais forte q o cinza... eh quase q preto.. por isso alterar as letras... blz....
tableName.setSelectionBackground(Color.DARK_GRAY);
tableName.setSelectionForeground(Color.WHITE);
qlqr duvida... soh postar....
GOSTEI 0
Anderson Freitas

Anderson Freitas

09/04/2009

setSelectionBackground(Color.DARK_GRAY);
Isso altera somente a linha selecionada certo? O que eu quero é deixar o background com a cor diferente independente de a linha estar selectionada ou não. Valeu por enquanto.
GOSTEI 0
Carlos Heuberger

Carlos Heuberger

09/04/2009

[quote="osmio"]Bom dia prezados. Como faço pra altera a cor de background de uma única linha de um JTable? Por exemplo, tenho uma tabela com 30 linhas, e quero que a linha de índice 4 fique com o background na cor cinza. Desde já agradeço.
Oi, voce vai ter que implementar um TableCellRenderer (estendendo o DefaultTableCellRenderer por exemplo). No tutorial da SUN tem exemplo: [url=http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer]Using Custom Renderers[/url] Mini-exemplo:
        table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
            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 == 1) {
                    setBackground(Color.LIGHT_GRAY);
                } else {
                    setBackground(null);
                }
                return this;
            }
        });
[]]]
GOSTEI 0
Deh

Deh

09/04/2009

[quote="osmio"]Bom dia prezados. [b][i]Como faço pra altera a cor de background de uma única linha de um JTable?[/i][/b] Por exemplo, tenho uma tabela com 30 linhas, e quero que a linha de índice 4 fique com o background na cor cinza. Desde já agradeço.
Foi mal, mas achei q queria alterar a cor de fundo de uma unica linha... té +...
GOSTEI 0
Luciano Fernandes

Luciano Fernandes

09/04/2009

To com dificuldade em mudar uma unica linha e manter ela com a cor
GOSTEI 0
Luciano Fernandes

Luciano Fernandes

09/04/2009

[quote="simu"][quote="osmio"]Bom dia prezados. Como faço pra altera a cor de background de uma única linha de um JTable? Por exemplo, tenho uma tabela com 30 linhas, e quero que a linha de índice 4 fique com o background na cor cinza. Desde já agradeço.
Oi, voce vai ter que implementar um TableCellRenderer (estendendo o DefaultTableCellRenderer por exemplo). No tutorial da SUN tem exemplo: [url=http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer]Using Custom Renderers[/url] Mini-exemplo:
        table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
            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 == 1) {
                    setBackground(Color.LIGHT_GRAY);
                } else {
                    setBackground(null);
                }
                return this;
            }
        });
[]]]
GOSTEI 0
André Pereira

André Pereira

09/04/2009

[quote="Lucas2014"]To com dificuldade em mudar uma unica linha e manter ela com a cor
Como vc esta fazendo? Qual a dificuldade
GOSTEI 0
POSTAR