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

时间:2014-06-30 13:24:46

标签: 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;
} 
}

enter image description here

实现了我的问题?

有人可以帮我吗?

非常感谢。

1 个答案:

答案 0 :(得分:5)

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

    table.getColumnModel().getColumn(COLUMN_INDEX).setCellRenderer(new PriorityCellRenderer());
    
  2. getTableCellRendererComponent()验证列索引if(column == COLUMN_INDEX)