Como pintar o bakground de uma row de uma jTable? [Resolvido]

7 respostas
vfpribeiro

Eu gostava de pintar o background de uma row numa jtable?

Para fazer um efeito de zebra, alternado as cores.

Se alguém soubesse dizer…
Agradecia

7 Respostas

lina

Oi,

Algo do tipo:

final JTable tabela = new JTable(conteudo, colunas){ public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) { Component c = super.prepareRenderer(renderer, rowIndex, vColIndex); if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) { c.setBackground(Color.yellow); } else { c.setBackground(getBackground()); } return c; } };

Tchauzin!

vfpribeiro

Sim exacto!!! Obrigado

jTable1 = new javax.swing.JTable(){ public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) { Component c = super.prepareRenderer(renderer, rowIndex, vColIndex); if (rowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) { c.setBackground(Color.yellow); } else { // If not shaded, match the table's background c.setBackground(getBackground()); } return c; } };

vfpribeiro

ok

lina

Oi,

Teria como passar uma classe de exemplo?

Tchauzin!

vfpribeiro

Obrigado, mesmo… Consegui resolver!!

lina

Oi,

Se o seu tópico foi respondido e você está satisfeito, segue:

  • Pressione o botão de seu primeiro post
  • Acrescente no final do título a tag [RESOLVIDO]

Tchauzin!

S

lina:
Oi,

Se o seu tópico foi respondido e você está satisfeito, segue:

  • Pressione o botão de seu primeiro post
  • Acrescente no final do título a tag [RESOLVIDO]

Tchauzin!

tenho o mesmo problema, mas não consigo pintar as linhas da tabela em modo zebrado
Segue a classe:
class MyCellRenderer extends DefaultTableCellRenderer {

private Color whiteColor = new Color(254, 254, 254);
    private Color alternateColor = new Color(204, 204, 204);
    private Color selectedColor = new Color(61, 128, 223);

    @Override
    public Component getTableCellRendererComponent(JTable table,
            Object value, boolean selected, boolean focused, int row,
            int column) {

        super.getTableCellRendererComponent(table, value, selected, focused, row, column);

        Color bg;
        if (!selected) {
            bg = (row % 2 == 0 ? alternateColor : whiteColor);
        } else {
            bg = selectedColor;
        }

        setBackground(bg);
        setForeground(selected ? Color.white : Color.black);

        /*
         * if (value instanceof ImageIcon) { setIcon((ImageIcon) value);
         * setText(""); } else setIcon(null);
         */
        return this;
    }
}
Criado 23 de março de 2011
Ultima resposta 17 de ago. de 2012
Respostas 7
Participantes 3