プログラムに scrTbl という名前の JTable を実装しました。「up」と呼ばれる外部ブール変数に基づいて、このテーブルの 1 つの列のテキストの色を変更できるようにしたいと考えています。この取り組みに関連する私のコードは次のとおりです。
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...
ポイントは、up の値に基づいて、列 9 と特定の行 (インデックス付き nmbrStocks) のテキストの色を緑または赤に設定することです。
しかし、実行すると、すべてのテキストが緑色に設定されます。列 9 のセルが書き込まれるたびにレンダラーが呼び出されますか、それともプロトコルは何ですか?
助けてくれてありがとう。