Cor em uma linha na jTable selecionada por valor boolean

Como mudar a cor de uma linha que vai ser selecionada pelo usuario, e essa permanecer marcada…e quando for desmarcada voltar a cor normal ???

ps: a pessoa vai selecionar a linha desejada por um campo boolean na jTable…

Use Renderers para fazer isso. assim vc pode colocar a cor que quiser tanto nas linhas selecionadas como as não selecionadas.

Exemplo.


//setando o cellrenderer
table.getColumnModel().getColumn(0).setCellRenderer(new MyTableCellRenderer());

Exemplo de CellRenderer



public class MyTableCellRenderer extends JLabel implements TableCellRenderer {
    
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int rowIndex, int colIndex) {

        // se a linha está selecionada
        if (isSelected) { 
            setOpaque(true);
            setBackground(Color.BLUE);
            setForeground(Color.WHITE);
        } else {
            setOpaque(true);
            setBackground(Color.WHITE);
            setForeground(Color.BLACK);
        }

        // se está em focus
        if (hasFocus) {
            
        }

        // seta o texto
        setText(value.toString());

        return this;
    }

    // The following methods override the defaults for performance reasons
    public void validate() {}
    public void revalidate() {}
    protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {}
    public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
}

Isso não deu certo :?

preciso q a linha marcada pela checkbox fique de uma cor diferente…e se desmarcada volte a cor normal…

OK, Mara*,

O que você poderia fazer é criar um campo boolean selected na sua classe, e renderizar um checkbox na coluna referênciada ao campo selected da sua classe.

Você já conseguiu isso?

Se sim, podemos continuar com a próxima parte.

Já coloquei a ultima coluna com campos boolean…

e ainda não deu certo’