我尝试根据字段的值更改 JTable 中字段的颜色。我不想更改第一列的任何颜色,但无论如何都会以错误的方式更改(某些文件未正确归档,例如 University 和 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”时,它会将第二列变成白色,但第一列仍然是奇怪的颜色。
任何人的想法?