Pintar linha da JTable?

9 respostas
java
P

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

9 Respostas

S
System.out.println(minhaJTable.getSelectedRow());
P
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;
}

} `

V
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”.

S

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

P

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

V

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…

S

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?

P

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

P

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!

Criado 18 de setembro de 2019
Ultima resposta 19 de set. de 2019
Respostas 9
Participantes 3