Enviado em 24/04/2015 - 13:20h
Tenho uma tabela que usa cores intercaladas nas linhas
public class CoresJTable implements TableCellRenderer{
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
int line;
String valor;
//@Override
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
((JLabel) renderer).setOpaque(true);
Color foreground = null, background = null;
valor = String.valueOf(value);
if (isSelected) {
foreground = new Color(0, 0, 0);
background = new Color(184, 207, 229);
}
else if(row % 2 == 0){
foreground = new Color(0, 0, 0);
background = new Color(213, 230, 239);
}
switch(valor) {
case "PAR":
foreground = new Color(251, 173, 48);
background = new Color(213, 230, 239);
break;
case "IMPAR":
foreground = new Color(250, 0, 0);
background = new Color(184, 207, 229);
break;
}
renderer.setForeground(foreground);
renderer.setBackground(background);
return renderer;
}
}
TableCellRenderer renderer = new CoresJTable();
private void corCelula(){
for (int c = 0; c < tabela.getColumnCount(); c++) {
tabela.setDefaultRenderer(tabela.getColumnClass(c), renderer);
}
}
class FiguraColumn extends JLabel implements TableCellRenderer{
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column){
Color foreground = null, background = null;
String text = String.valueOf(value);
String img;
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
if (isSelected) {
foreground = new Color(0, 0, 0);
background = new Color(184, 207, 229);
}
else if(row % 2 == 0){
foreground = new Color(0, 0, 0);
setBackground(new Color(184, 231, 177));
}
switch (text) {
case "src/image/verde.gif":
img = "src/image/verde.gif"; // cria a imagem
break;
case "src/image/amarela.gif":
img = "src/image/amarela.gif"; // cria a imagem
break;
case "src/image/vermelha.gif":
img = "src/image/vermelha.gif"; // cria a imagem
break;
default:
img = "src/image/alta.png"; // cria a imagem
break;
}
carregarImg(img);
renderer.setForeground(foreground);
renderer.setBackground(background);
setHorizontalAlignment(CENTER);
setBackground(new Color(184, 231, 177));
return this;
}
private void carregarImg(String img){
Image foto1 = new ImageIcon(img).getImage().getScaledInstance(15, 15, Image.SCALE_DEFAULT);
this.setIcon(new ImageIcon(foto1));
this.repaint();
}
@Override
public void validate() {}
@Override
public void revalidate() {}
@Override
protected void firePropertyChange(String propertyName,
Object oldValue, Object newValue) {}
@Override
public void firePropertyChange(String propertyName,
boolean oldValue, boolean newValue) {}
}
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)