Pintar linha da JTable?

Boa tarde, alguém sabe algum meio de pintar a linha selecionada na tabela?

System.out.println(minhaJTable.getSelectedRow());

Ate da certo mais não seta a cor:
Poderia me ajudar?
`private void jTabelaMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(jTabela.getSelectedRow() != -1){
jTabela.setDefaultRenderer(Object.class, new TableCellRendererReturn());
}
// if (evt.getClickCount() == 2) {
// jTabela.setDefaultRenderer(Object.class, new TableCellRendererColor());
// }else if(evt.getClickCount() == 1){
// jTabela.setDefaultRenderer(Object.class, new TableCellRendererReturn());
// }
}
public class TableCellRendererColor extends DefaultTableCellRenderer{
private Component componente;

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); //To change body of generated methods, choose Tools | Templates.
 if (jTabela.getSelectedRow() != -1) {
    componente.setBackground(Color.darkGray);
}
return componente;
}

}
public class TableCellRendererReturn extends DefaultTableCellRenderer{
private Component componente;

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); //To change body of generated methods, choose Tools | Templates.
 if (jTabela.getSelectedRow() != -1) {
    componente.setBackground(Color.WHITE);
}
return componente;
}

} `

nomeDaTabela.setSelectionBackground(new java.awt.Color(127, 177, 252));
OU
nomeDaTabela.setSelectionBackground(Color blue);

E no netbeans tem como escolher na parte gráfica qual será o “SelectionBackground”.

Putz eu havia lido PRINTAR ao invés de PINTAR. :flushed:

1 curtida

Quando eu selecionar a linha vai setar a cor? @Vinialv

Normalmente um jTable já vem com uma cor padrão quando é selecionado, este código será apenas para colocar uma outra cor onde você selecionar.
Caso não tenha é só colocar está linha, identificando qual é a linha que você está selecionando.

Não sei se é outra coisa que você está querendo dizer…

Quando você implementa um TableCellRenderer você tem que implementar o método getTableCellRendererComponent para retornar o componente que deve ser utilizado para apresentar o conteúdo (a implementação padrão retorna um JLabel).

O método getTableCellRendererComponent possui 6 parâmetros:

  1. JTable: A própria JTable;
  2. Object: O conteúdo a ser apresentado na célula;
  3. boolean: true se a célula está selecionada e false caso contrário;
  4. boolean: true se a célula está com o foco e false caso contrário;
  5. int: A linha da célula;
  6. int: A coluna da célula.

No seguinte link tem um exemplo de como verificar estes parâmetros para pintar as células:
Link: Como utilizar TableCellRenderer para renderizar de uma forma diferente as células de uma JTable?

Não exatamente isto que espero… Eu queria que por exemplo as linhas selecionadas ficassem pintadas… Como se estivesse setando a cor nelas…

Eu acho que este meio que você colocou é apenas para cláusulas válidas… Legal! Posso tentar… Por exemplo se a condição for verdadeira eu seto a cor na linha senão permanece a mesma cor!