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) {}
}
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Como redefinir o diretório Home? (5)
Problemas com adaptadores wifi no Zorin (1)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (7)