eu quera colocar cores diferentes para cada celula da minha tabela como eu faço isso?
Cor de fundo das celulas de uma tabela
K
2 Respostas
web? desktop? mobile? folha de caderno? papel de pão… etc…
Bom, partindo do princípio que este fórum é sobre interfaces gráficas, suponho que seja uma tabela na interface gráfica mais comum na plataforma Java, o Swing.
Para modificar a aparência das células de uma tabela você deve implementar a interface TableCellRenderer e aplicar a sua implementação à tabela através da operação setDefaultRenderer (também é possível aplicar o seu renderer customizado diretamente a uma coluna específica).
Colo abaixo um exemplo de um projeto onde escrevo um renderer para que o visual da tabela fique semelhante a um JTableHeaderpackage goitaca.renderer.table;
import java.awt.Component;
import java.awt.SystemColor;
import java.util.Arrays;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
public class FixedTableCellRenderer implements TableCellRenderer
{
private static final long serialVersionUID = -8223392127183298183L;
private List<Integer> fixedRows;
private boolean fixedAll = false;
public FixedTableCellRenderer()
{
super();
fixedAll = true;
}
public FixedTableCellRenderer(Integer... fixedRows)
{
super();
this.fixedRows = Arrays.asList(fixedRows);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
JLabel component = (JLabel)
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (fixedAll || fixedRows.contains(column))
{
component.setBackground(table.getTableHeader().getBackground());
component.setForeground(table.getTableHeader().getForeground());
component.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
}
else
{
component.setBackground(SystemColor.text);
component.setForeground(SystemColor.textText);
}
return component;
}
}
minhaTabela.setDefaultRenderer(Object.class, new FixedTableCellRenderer());
Criado 27 de março de 2007
Ultima resposta 27 de mar. de 2007
Respostas 2
Participantes 3