0
我在一個程序中實現了一個名爲scrTbl的JTable,我希望能夠根據名爲「up」的外部布爾變量來改變此表的一列中的文本顏色。我的代碼與這項工作相關如下。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列中的某個單元格被寫入時,渲染器是否被調用,或者協議是什麼?
在此先感謝您的幫助。