Я реализовал JTable с именем scrTbl в программе, и я хочу иметь возможность изменять цвет текста в одном столбце этой таблицы на основе внешней логической переменной, называемой «вверх». Мой код, связанный с этими усилиями, выглядит следующим образом.Проблемы Java JTable TableCellRenderer
TableColumn tcol = scrTbl.getColumnModel().getColumn(9);
tcol.setCellRenderer(new CustomTableCellRenderer());
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent (JTable table,
Object obj, boolean isSelected, boolean hasFocus, int row, int
column)
{
Component cell = super.getTableCellRendererComponent(table,
obj, isSelected, hasFocus, row, column);
if (up && (row == nmbrStocks))
{
cell.setForeground(Color.green);
}
if ((!up) && (row == nmbrStocks))
{
cell.setForeground(Color.red);
}
return cell;
}//Component
} //class getTableCell...
Дело в том, чтобы установить цвет текста для столбца 9 и конкретной строки (индексированные nmbrStocks) до зеленого или красного цвета, основываясь на значении вверх.
Но когда он запускается, он устанавливает весь текст в зеленый цвет. Является ли рендеринг вызываемым каждый раз, когда ячейка в столбце 9 записывается или что такое протокол?
Заранее благодарим за любую помощь.