Colorir uma linha de uma JTable que está como Header

Bom dia galera, bom li várias coisas sobre como colorir uma linha de uma JTable, porém não estou conseguindo encaixar no meu código,
na verdade eu não estou conseguindo que de certo, pois não está colorindo a linha e eu preciso disso com a maior das urgências, por favor
se alguém puder me dar uma dica de como eu faço para colorir essa linha header da minha JTable eu agradeço imensamente!

Ai vai meu código:

[code]package view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;

import javax.swing.table.TableCellRenderer;

import org.jdesktop.swingx.JXTable;

public class AbTratamentoPares extends DefaultTableCellRenderer {

private JFrame frame = new JFrame();
private JPanel painel = new JPanel();
private JMenuBar BarraTratamentoPares;
private JMenu MnTratamentoPares;
private JMenu MnVoltar;
private JMenuItem MiProcessarPares;
private JMenuItem MiExibirListaPares;
private JMenuItem MiAdicionarContagem;
private JMenuItem MiExcluirContagem;
private JToolBar barBotao2 = new JToolBar();
private JButton btnProcessarPares = new JButton();
private JButton btnExibirListaPares = new JButton();
private JButton btnAddContagem = new JButton();
private JButton btnExcluirContagem = new JButton();
private JButton btnVoltar = new JButton();
private JLabel lblTratamentoPares = new JLabel();
private DefaultTableModel modelo = null;
private DefaultTableModel modelo2 = null;
private JTable Tbtabela = new JTable();
private JTable Tbtabela2 = new JTable();
DefaultTableCellRenderer colunaRender = new DefaultTableCellRenderer();

private JScrollPane panelTableDE = null;
private JScrollPane panelTablePARA = null;

private final String[] cabecalhoDE = new String[]{"Cabo Lógico DE", "Menor Par", "Maior Par"};
private final String[] cabecalhoPARA = new String[]{"Cabo Lógico PARA", "Menor Par", "Maior Par"};

public AbTratamentoPares() {

    init();
}

private void init() {

    frame.setTitle("Tratamento de Pares");
    frame.setIconImage(new ImageIcon(getClass().getResource("/image/ICONE_TITULO.png")).getImage());
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(785, 400);
    frame.setVisible(true);
    frame.setJMenuBar(getBarraTratamentoPares());
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    painel.setLayout(null);
    painel.setSize(800, 500);
    frame.add(painel);
   
    barBotao2.setBounds(0, 0, 240, 45);
    barBotao2.setFloatable(false);

    btnProcessarPares.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Processar_Pares.png")));
    btnExibirListaPares.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Exibir_Lista_Pares.png")));
    btnAddContagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Adicionar_Contagem.png")));
    btnExcluirContagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Excluir_Contagem.png")));
    btnVoltar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_VOLTAR.png")));

    barBotao2.add(btnProcessarPares);
    barBotao2.add(btnExibirListaPares);
    barBotao2.add(btnAddContagem);
    barBotao2.add(btnExcluirContagem);
    barBotao2.add(btnVoltar);
    painel.add(barBotao2);

    painel.add(lblTratamentoPares);
    lblTratamentoPares.setText("Tratamento de Pares");
    lblTratamentoPares.setBounds(10, 60, 150, 20);
    
    panelTableDE = new JScrollPane(getTable1());
    panelTableDE.setBounds(10, 90, 370, 150);
    panelTableDE.setAutoscrolls(true);
    panelTableDE.setBackground(Color.WHITE);

    panelTablePARA = new JScrollPane(getTable2());
    panelTablePARA.setBounds(400, 90, 370, 150);
    panelTablePARA.setAutoscrolls(true);
    panelTablePARA.setBackground(Color.WHITE);

    painel.add(panelTableDE);
    painel.add(panelTablePARA);
}

public JTable getTable1() {
    modelo = new DefaultTableModel(null, cabecalhoDE);
    Tbtabela.setModel(modelo);
    Tbtabela.getTableHeader().setReorderingAllowed(false);
    
    Tbtabela.getColumnModel().getColumn(0).setPreferredWidth(150);
    Tbtabela.getColumnModel().getColumn(1).setPreferredWidth(50);
    Tbtabela.getColumnModel().getColumn(2).setPreferredWidth(50);
    
    return Tbtabela;
}

public JTable getTable2() {
    modelo2 = new DefaultTableModel(null, cabecalhoPARA);
    Tbtabela2.setModel(modelo2);
    Tbtabela2.getTableHeader().setReorderingAllowed(false);
            
    Tbtabela2.getColumnModel().getColumn(0).setPreferredWidth(150);
    Tbtabela2.getColumnModel().getColumn(1).setPreferredWidth(50);
    Tbtabela2.getColumnModel().getColumn(2).setPreferredWidth(50);
    
    return Tbtabela2;
}

private JMenuBar getBarraTratamentoPares() {

    if (BarraTratamentoPares == null) {
        BarraTratamentoPares = new JMenuBar();
        BarraTratamentoPares.add(getMnTratamentoPares());
        BarraTratamentoPares.add(getMnVoltar());
    }
    return BarraTratamentoPares;
}

private JMenu getMnTratamentoPares() {

    if (MnTratamentoPares == null) {
        MnTratamentoPares = new JMenu();
        MnTratamentoPares.setText("Tratamento de Pares");
        MnTratamentoPares.setMnemonic(KeyEvent.VK_T);
        MnTratamentoPares.add(getMiProcessarPares());
        MnTratamentoPares.add(getMiExibirListaPares());
        MnTratamentoPares.addSeparator();
        MnTratamentoPares.add(getMiAdicionarContagem());
        MnTratamentoPares.add(getMiExcluirContagem());
    }
    return MnTratamentoPares;
}

private JMenuItem getMiProcessarPares() {

    if (MiProcessarPares == null) {
        MiProcessarPares = new JMenuItem();
        MiProcessarPares.setText("Processar Pares");
    }
    return MiProcessarPares;
}

private JMenuItem getMiExibirListaPares() {

    if (MiExibirListaPares == null) {
        MiExibirListaPares = new JMenuItem();
        MiExibirListaPares.setText("Exibir Lista de Pares");
    }
    return MiExibirListaPares;
}

private JMenuItem getMiAdicionarContagem() {

    if (MiAdicionarContagem == null) {
        MiAdicionarContagem = new JMenuItem();
        MiAdicionarContagem.setText("Adicionar Contagem PARA");
    }
    return MiAdicionarContagem;
}

private JMenuItem getMiExcluirContagem() {

    if (MiExcluirContagem == null) {
        MiExcluirContagem = new JMenuItem();
        MiExcluirContagem.setText("Excluir Contagem PARA");
    }
    return MiExcluirContagem;
}

private JMenu getMnVoltar() {

    if (MnVoltar == null) {
        MnVoltar = new JMenu();
        MnVoltar.setText("Voltar");
        MnVoltar.setMnemonic(KeyEvent.VK_V);
    }
    return MnVoltar;
}

public static void main(String[] args) {

    new AbTratamentoPares();

}

}
[/code]

Vou mandar a imagem de como tem que ficar:

Onde está laranja atualmente está da cor da tela padrão e eu preciso deixar laranja essa header da JTable.

Obrigado a todos!!!

Olá Diegogm,
bem, vamos ver se consigo te ajudar. a jtable tem um componente que cuida dos dados, a TableModel (aqui vc usou o default) e um que cuida da aparencia das celulas (inclusive do Header) o render.
Vc deve estilizar o seu render para que ele seja colorido ou com o tipo de letra que vc quiser.
sobre os renders, veja:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#rendereré um tutorial sobre jtables que explica como funciona o render.
vc cria uma classe render para o header apenas e depois seta essa classe para o seu header que ele fica como vc quer.

[quote=ode-to-joy]Olá Diegogm,
bem, vamos ver se consigo te ajudar. a jtable tem um componente que cuida dos dados, a TableModel (aqui vc usou o default) e um que cuida da aparencia das celulas (inclusive do Header) o render.
Vc deve estilizar o seu render para que ele seja colorido ou com o tipo de letra que vc quiser.
sobre os renders, veja:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#rendereré um tutorial sobre jtables que explica como funciona o render.
vc cria uma classe render para o header apenas e depois seta essa classe para o seu header que ele fica como vc quer.

[/quote]

Obrigado por responder cara!!!
Uma pergunta eu posso estilizar a minha render na mesma classe? Pois pra mim seria mais interessante se fosse na mesma classe.

Sim, desde que vc crie uma classe renderer na sua classe principal, uma classe dentro da outra, mas de qualquer modo, vc precisa criar uma classe renderer.

Entendi, desculpa a demora para responder, vou fazer esse Renderer vamos ver no que dá haha.
Volto a responder…obrigado por enquanto!

Boa tarde ode-to-joy!!!

Consegui resolver aquele problema, eu estendi minha classe a um DefaultTableCellRenderer como anteriormente dai eu instanciei um JTableHeader
e configurei as propriedades dele na minha tabela.

Obrigado mesmo pela ajuda cara! :smiley:

Segue o código pronto!

[code]package view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;

import javax.swing.table.TableCellRenderer;

import org.jdesktop.swingx.JXTable;

public class AbTratamentoPares extends DefaultTableCellRenderer {

private JFrame frame = new JFrame();
private JPanel painel = new JPanel();
private JMenuBar BarraTratamentoPares;
private JMenu MnTratamentoPares;
private JMenu MnVoltar;
private JMenuItem MiProcessarPares;
private JMenuItem MiExibirListaPares;
private JMenuItem MiAdicionarContagem;
private JMenuItem MiExcluirContagem;
private JToolBar barBotao2 = new JToolBar();
private JButton btnProcessarPares = new JButton();
private JButton btnExibirListaPares = new JButton();
private JButton btnAddContagem = new JButton();
private JButton btnExcluirContagem = new JButton();
private JButton btnVoltar = new JButton();
private JLabel lblTratamentoPares = new JLabel();
private DefaultTableModel modelo = null;
private DefaultTableModel modelo2 = null;
private JTable Tbtabela = new JTable();
private JTable Tbtabela2 = new JTable();
DefaultTableCellRenderer colunaRender = new DefaultTableCellRenderer();

private JTableHeader header1 = new JTableHeader();
private JTableHeader header2 = new JTableHeader();

private JScrollPane panelTableDE = null;
private JScrollPane panelTablePARA = null;

private final String[] cabecalhoDE = new String[] { "Cabo Lógico DE", "Menor Par", "Maior Par" };
private final String[] cabecalhoPARA = new String[] { "Cabo Lógico PARA", "Menor Par", "Maior Par" };

public AbTratamentoPares() {

    init();
}

private void init() {

    frame.setTitle("Tratamento de Pares");
    frame.setIconImage(new ImageIcon(getClass().getResource("/image/ICONE_TITULO.png")).getImage());
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(785, 400);
    frame.setVisible(true);
    frame.setJMenuBar(getBarraTratamentoPares());
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    painel.setLayout(null);
    painel.setSize(800, 500);
    frame.add(painel);

    barBotao2.setBounds(0, 0, 240, 45);
    barBotao2.setFloatable(false);

    btnProcessarPares.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Processar_Pares.png")));
    btnExibirListaPares.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Exibir_Lista_Pares.png")));
    btnAddContagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Adicionar_Contagem.png")));
    btnExcluirContagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_Excluir_Contagem.png")));
    btnVoltar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Tratamento_Pares/BT_VOLTAR.png")));

    barBotao2.add(btnProcessarPares);
    barBotao2.add(btnExibirListaPares);
    barBotao2.add(btnAddContagem);
    barBotao2.add(btnExcluirContagem);
    barBotao2.add(btnVoltar);
    painel.add(barBotao2);

    painel.add(lblTratamentoPares);
    lblTratamentoPares.setText("Tratamento de Pares");
    lblTratamentoPares.setBounds(10, 60, 150, 20);

    panelTableDE = new JScrollPane(getTable1());
    panelTableDE.setBounds(10, 90, 370, 150);
    //panelTableDE.setAutoscrolls(true);
    panelTableDE.setBackground(Color.WHITE);

    panelTablePARA = new JScrollPane(getTable2());
    panelTablePARA.setBounds(400, 90, 370, 150);
    //panelTablePARA.setAutoscrolls(true);
    panelTablePARA.setBackground(Color.WHITE);

    painel.add(panelTableDE);
    painel.add(panelTablePARA);
}

public JTable getTable1() {
    modelo = new DefaultTableModel(null, cabecalhoDE);
    Tbtabela.setModel(modelo);
    Tbtabela.getColumnModel().getColumn(0).setPreferredWidth(150);
    Tbtabela.getColumnModel().getColumn(1).setPreferredWidth(50);
    Tbtabela.getColumnModel().getColumn(2).setPreferredWidth(50);
            
    header1 = Tbtabela.getTableHeader();
    header1.setBackground(Color.YELLOW);
    header1.setFont(new Font("Arial", Font.BOLD, 12));
 
    return Tbtabela;
}

public JTable getTable2() {
    modelo2 = new DefaultTableModel(null, cabecalhoPARA);
    Tbtabela2.setModel(modelo2);
    Tbtabela2.getColumnModel().getColumn(0).setPreferredWidth(150);
    Tbtabela2.getColumnModel().getColumn(1).setPreferredWidth(50);
    Tbtabela2.getColumnModel().getColumn(2).setPreferredWidth(50);
    
    header2 = Tbtabela2.getTableHeader();
    header2.setBackground(Color.YELLOW);
    header2.setFont(new Font("Arial", Font.BOLD, 12));
  
    return Tbtabela2;
}

private JMenuBar getBarraTratamentoPares() {

    if (BarraTratamentoPares == null) {
        BarraTratamentoPares = new JMenuBar();
        BarraTratamentoPares.add(getMnTratamentoPares());
        BarraTratamentoPares.add(getMnVoltar());
    }
    return BarraTratamentoPares;
}

private JMenu getMnTratamentoPares() {

    if (MnTratamentoPares == null) {
        MnTratamentoPares = new JMenu();
        MnTratamentoPares.setText("Tratamento de Pares");
        MnTratamentoPares.setMnemonic(KeyEvent.VK_T);
        MnTratamentoPares.add(getMiProcessarPares());
        MnTratamentoPares.add(getMiExibirListaPares());
        MnTratamentoPares.addSeparator();
        MnTratamentoPares.add(getMiAdicionarContagem());
        MnTratamentoPares.add(getMiExcluirContagem());
    }
    return MnTratamentoPares;
}

private JMenuItem getMiProcessarPares() {

    if (MiProcessarPares == null) {
        MiProcessarPares = new JMenuItem();
        MiProcessarPares.setText("Processar Pares");
    }
    return MiProcessarPares;
}

private JMenuItem getMiExibirListaPares() {

    if (MiExibirListaPares == null) {
        MiExibirListaPares = new JMenuItem();
        MiExibirListaPares.setText("Exibir Lista de Pares");
    }
    return MiExibirListaPares;
}

private JMenuItem getMiAdicionarContagem() {

    if (MiAdicionarContagem == null) {
        MiAdicionarContagem = new JMenuItem();
        MiAdicionarContagem.setText("Adicionar Contagem PARA");
    }
    return MiAdicionarContagem;
}

private JMenuItem getMiExcluirContagem() {

    if (MiExcluirContagem == null) {
        MiExcluirContagem = new JMenuItem();
        MiExcluirContagem.setText("Excluir Contagem PARA");
    }
    return MiExcluirContagem;
}

private JMenu getMnVoltar() {

    if (MnVoltar == null) {
        MnVoltar = new JMenu();
        MnVoltar.setText("Voltar");
        MnVoltar.setMnemonic(KeyEvent.VK_V);
    }
    return MnVoltar;
}

public static void main(String[] args) {

    new AbTratamentoPares();

}

}
[/code]