列を並べ替えた後に一部の行を色付けする際に問題があります。4列目がゼロに等しいすべての行に色を付けたいです。したがって、次のように prepareRenderer() メソッドをオーバーライドしました。
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component comp = super.prepareRenderer(renderer, row, column);
int modelRow = convertRowIndexToModel(row);
int modelColumn = convertColumnIndexToModel(column);
double d = (double) getModel().getValueAt(row, 4);
if(d <= 1e-4){
comp.setForeground(Color.RED);
}else{
comp.setForeground(Color.BLACK);
}
return comp;
}
それは正常に動作します。(1行目、2行目、15行目は赤く着色)
しかし、いくつかの列をソートした後、この行のインデックスは変更されません (1 番目、2 番目、15 番目の行が再び赤くなります)
。