Java cor na tabela JTable?

Segue a foto da minha tabela, eu gostaria de pintar a linha por inteiro, onde na minha imagem está colorindo apenas a coluna do serviço.

segue meu código de colorir as linhas:

public void corLinha()
{
        tbServicos.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
        {
            @Override
            public Component getTableCellRendererComponent(JTable table, Object value,
                    boolean isSelected, boolean hasFocus, int row, int column)
            {
                JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                
                
                Color lightBlue = new Color(204, 204, 255);
                Color azul = new Color(64, 128, 243);

                if (isSelected)
                {
                    label.setForeground(Color.WHITE);
                    label.setBackground(azul);
                } else if (row % 2 == 0)
                {
                    label.setForeground(Color.BLACK); // color.black
                    label.setBackground(Color.WHITE);
                } else
                {
                   label.setForeground(Color.BLACK);
                   label.setBackground(lightBlue);
                }

                return label;
            }
        });
}

No tópico anterior que você fez igual a este, eu te passei uma classe e a chamada dela para pintar a linha por inteiro, tentou utilizar ?

Eu não havia tentado daquela forma, me desculpe. Vou fazer como você me disse. Eu chamo o módulo pintarJtable quando eu estiver preenchendo minha tabela?

Não, primeiro você preenche a JTable, após isso você faz aquela chamada para pintar as linhas, tudo isso dentro do mesmo método, conforme exemplo abaixo.

   public void metodoPreencherJTable() {
        preencherJTable();
        pintarLinhaJTable();
    }

Ok, valeu :smiley:

ainda continua como na imagem que eu postei, só que agora com as cores que você colocou assim como a fonte, mas ainda não pintou a linha por completo

Você criou um renderer para a classe Object, as colunas código e valor são dos tipos int e double (tipos primitivos) respectivamente, sendo assim você deve converter para String (subclasse de Object) ou criar um renderer para essas classes. (coloque um simples toString ou String,valueOf nessas duas colunas e veja o que acontece)

Consegui resolver eu tinha um método:

DefaultTableCellRenderer alinharCentro = new DefaultTableCellRenderer()
{
    public void setValue(Object value)
    {
        setHorizontalAlignment(JLabel.CENTER);
        super.setValue(value);
    }
};

para alinhar o cabeçalho e isto estava impossibilitando preencher toda a linha, só que agora eu queria alinhar o cabeçalho de apenas duas colunas, Código e Valor