-1
Я пытаюсь покрасить RED, на переднем плане, когда время вокруг какого-то условия, но рисует передний план всех строк (должно быть только семь). Что я делаю неправильно? Код ниже:Изменить JTable row foreground
class RedRenderer extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
BigDecimal time=new BigDecimal(jTable.getModel().getValueAt(row, 17).toString());
if(time.compareTo(new BigDecimal(2))<=0){
setForeground(Color.red);
setBackground(Color.white);
}else{
setBackground(null);
}
return this;
}
}
Вы совершенно правы! Это похоже на память цвета. Я устанавливаю setForeground (null); в остальном, и он отлично работает! – LeeP
Да; 'TableCellRenderer' используются как «резиновые штампы» - атрибуты метки, используемые для рендеринга, не изменяются (кроме самого текста), если вы не измените их. – Josh