Swing JTable没有提供设置单个单元格颜色的API,可通过重写DefaultTableCellRenderer类的 getTableCelllRendererComponent实现。核心代码如下:
class MyTableCellRender extends DefaultTableCellRenderer(){
private Color color = getBackground();
@override
public Component getTableCelllRendererComponent (JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column){
Component c = super.getTableCellRendererComponent(table,value,isSelected, hasFocus, row, column);
if("拒绝".equals(value) && column == 5){
setBackground(Color.red)//如果第五列的值为“拒绝”则背景颜色设置为红色
}else{
setBackground(color);//其他单元格颜色不变
}
return c;
}
}