staroski
Creio que assim resolva sua necessidade:
masterTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component renderizador = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Object status = table.getValueAt(row, 10);
if ("Conciliar".equals(status)) {
renderizador.setBackground(Color.RED);
renderizador.setForeground(Color.WHITE);
} else if (!isSelected) {
renderizador.setBackground(Color.WHITE);
renderizador.setForeground(new Color(51, 51, 51));
}
return renderizador;
}
});
Lucas_marinho
meu amigo continua preenchendo só a cédulas da tabela que tem letras as com números não estão preenchendo.
/uploads/3X/a/9/a9608973bfdb400ec2e7c67b72c81d22e63b503a.png.webp
Solucao aceita
staroski 1 like
Deve ser por causa do tipo das colunas, não sei como você implementou seu TableModel.
Provavelmente setando o mesmo renderizador para colunas numéricas deve resolver:
DefaultTableCellRenderer renderizador = new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Object status = table.getValueAt(row, 10);
if ("Conciliar".equals(status)) {
componente.setBackground(Color.RED);
componente.setForeground(Color.WHITE);
} else if (!isSelected) {
componente.setBackground(Color.WHITE);
componente.setForeground(new Color(51, 51, 51));
}
return componente;
}
};
masterTable.setDefaultRenderer(String.class, renderizador);
masterTable.setDefaultRenderer(Double.class, renderizador);
masterTable.setDefaultRenderer(Integer.class, renderizador);
Lucas_marinho 1 like
muito obrigado!
deu certo meu codigo ficou assim
public void colorir(){
DefaultTableCellRenderer renderizador = new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
Component componente = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Object status = table.getValueAt(row, 10);
if ("Conciliar".equals(status)) {
componente.setBackground(Color.RED);
componente.setForeground(Color.WHITE);
} else if (!isSelected) {
componente.setBackground(Color.WHITE);
componente.setForeground(new Color(51, 51, 51));
}
return componente;
}
};
masterTable.setDefaultRenderer(String.class, renderizador);
masterTable.setDefaultRenderer(Double.class, renderizador);
masterTable.setDefaultRenderer(Integer.class, renderizador);
masterTable.setDefaultRenderer(Exercicio.class, renderizador);
masterTable.setDefaultRenderer(Mes.class, renderizador);
masterTable.setDefaultRenderer(Conta.class, renderizador);
