如何更改JTable中第一个单元格的背景颜色?

rpi*_*rez 1 java swing jtable

一切都好吗?

我的java应用程序中有下表.根据状态,他将线条设为某种颜色,我将在下面的代码中显示.

我想要的是只有第一列是彩色的,其他列想要以默认颜色显示.

public class PriorityCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(
            table, value, isSelected, hasFocus, row, column);

    //if (Integer.valueOf(1).equals(table.getValueAt(row, 1)) && 0 == column)   && 9 < column)
    if (String.valueOf(1).equals(table.getValueAt(row, 0))) {
        setForeground(Color.BLUE);  // or background
    }
    if (String.valueOf(2).equals(table.getValueAt(row, 0))) {
        setForeground(Color.GREEN);  // or background
    }
    if (String.valueOf(3).equals(table.getValueAt(row, 0))) {
        setForeground(Color.YELLOW);  // or background
    }
    if (String.valueOf(4).equals(table.getValueAt(row, 0))) {
        setForeground(Color.RED);  // or background
    }
    return this;
} 
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

实现了我的问题?

有人能帮帮我吗?

非常感谢你.

ale*_*410 5

  1. 为目标列设置自定义渲染器:

    table.getColumnModel().getColumn(COLUMN_INDEX).setCellRenderer(new PriorityCellRenderer());
    
    Run Code Online (Sandbox Code Playgroud)
  2. getTableCellRendererComponent()验证列索引中if(column == COLUMN_INDEX)