Olá!
Gostaria de saber como eu faço para mudar a cor de algumas linhas de uma jTable.
É o seguinte:
Nesta jTable eu consulto produtos e gostaria que quando o produto estiver com o estoque igual a 0 a linha apareça em vermelho. Nela eu mostro o Código, Descrição, Estoque e Estoque Mínimo.
Agradeço a ajuda!
T+
Eu não tenho aqui o código, mas vc precisará criar uma classe que implemente TableCellRenderer, e registrar ela como sendo o renderizador da célula que você for implementar essa lógica. Dá uma olhada na documentação dessa classe que é bem simples.
Oi,
Exatamente isso…
Você deverá implementar a classe TableCellRenderer e sobreescrever métodos necessários.
Apenas um exemplo.:
[code]class Colorir
extends JLabel
implements TableCellRenderer
{
public
Component getTableCellRendererComponent
(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column
)
{
if(estoque == 0)
{
setForeground(Color.RED);
}
else
{
setForeground(Color.BLACK);
}
setText(value.toString());
return this;
}
}[/code]
E você chama essa classe desta maneira.:
TableCellRenderer tcr = new Colorir();
TableColumn column = tabela.getColumnModel().getColumn(1);
column.setCellRenderer(tcr);
Espero ter ajudado
Tchauzin!
Google 1º resultado:
http://www.java2s.com/Code/Java/Swing-JFC/InstalldifferentTableRendererforevenandoddrows.htm
Ae galera! Valeu pelas dicas!
Tô implementando aqui qualquer coisa eu posto o resultado!
Valew!
[quote=lina]Oi,
Exatamente isso…
Você deverá implementar a classe TableCellRenderer e sobreescrever métodos necessários.
Apenas um exemplo.:
[code]class Colorir
extends JLabel
implements TableCellRenderer
{
public
Component getTableCellRendererComponent
(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column
)
{
if(estoque == 0)
{
setForeground(Color.RED);
}
else
{
setForeground(Color.BLACK);
}
setText(value.toString());
return this;
}
}[/code]
E você chama essa classe desta maneira.:
TableCellRenderer tcr = new Colorir();
TableColumn column = tabela.getColumnModel().getColumn(1);
column.setCellRenderer(tcr);
Espero ter ajudado
Tchauzin!
[/quote]
Bom dia lina será q vc pode me da uma forcinha com essa implementação aqui: http://www.guj.com.br/java/305850-mudar-as-cores-das-linha-de-uma-jtabel-conforme-data-de-vencimento