Pessoal,
andei pesquisando sobre DefaultTableCellRenderer mas não encontrei uma resposta para solucionar meu problema. Tenho uma jtable com um modelo que eu desenvolvi. Desejo realizar a mudança da cor de fundo de uma celula qualquer por exemplo celula(3,4) ou celula(5,7) de acordo com minha vontade dependendo apenas dos valores da linha e coluna. Os exemplos que encontrei funcionam somente para definir as cores de todas as celulas de uma coluna mas desejo colocar cor em uma só celula.
Alguma idéia??
Abraços
table1 = new JTable()
{
public Component prepareRenderer( TableCellRenderer renderer,
int row, int column ) {
Component component = super.prepareRenderer( renderer, row,
column );
if ( row >= 0 && row <= ( table1.getRowCount() / 3 ) )
{
component.setBackground( SystemColor.desktop );
component.setForeground( Color.red );
}
if ( row > ( table1.getRowCount() / 3 ) &&
row <= ( 2 * ( table1.getRowCount() / 3 ) ) )
{
component.setBackground( SystemColor.green );
component.setForeground( Color.red );
}
if ( row > ( 2 * ( table1.getRowCount() / 3 ) ) &&
row <= table1.getRowCount() )
{
component.setBackground( SystemColor.black );
component.setForeground( Color.red );
}
return component;
}
};
Coloca as especificações nos if da celula que vc quer mudar! esse renderer se chama prepareRenderer que recebe um TableCellRenderer e as informações de linha e coluna na qual vc quer mudar!
[quote=Blazing]table1 = new JTable()
{
public Component prepareRenderer( TableCellRenderer renderer,
int row, int column ) {
Component component = super.prepareRenderer( renderer, row,
column );
if ( row >= 0 && row <= ( table1.getRowCount() / 3 ) )
{
component.setBackground( SystemColor.desktop );
component.setForeground( Color.red );
}
if ( row > ( table1.getRowCount() / 3 ) &&
row <= ( 2 * ( table1.getRowCount() / 3 ) ) )
{
component.setBackground( SystemColor.green );
component.setForeground( Color.red );
}
if ( row > ( 2 * ( table1.getRowCount() / 3 ) ) &&
row <= table1.getRowCount() )
{
component.setBackground( SystemColor.black );
component.setForeground( Color.red );
}
return component;
}
};
Coloca as especificações nos if da celula que vc quer mudar! esse renderer se chama prepareRenderer que recebe um TableCellRenderer e as informações de linha e coluna na qual vc quer mudar![/quote]
Que saudades do grid do Delphi… Só pensando alto mesmo…