値に応じて JTable のフィールドの色を変更しようとしています。最初の列の色を変更したくありませんが、とにかくバグのある方法で変更されます(大学やPossible_Reviewerのように一部のフィールドが正しくファイルされていません):
私のコードは次のとおりです。
table.setDefaultRenderer(Object.class, new CustomRenderer());
private class CustomRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int col){
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
try {
Double val = Double.parseDouble(value.toString());
if(col == 0){
comp.setBackground(Color.white);
} else {
comp.setBackground(changeColor(val));
}
} catch (NumberFormatException e){}
return( comp );
}
private Color changeColor(Double val) {
//returns a Color between red and green depending on val
}
}
奇妙なことに、「col == 2」を使用すると、2 番目の列が白くなりますが、最初の列は奇妙な色のままです。
誰でもアイデアはありますか?