【问题标题】:Change only one cell's color in JTable在 JTable 中仅更改一个单元格的颜色
【发布时间】:2012-08-15 04:20:59
【问题描述】:

我知道我可以使用此代码设置整个列的背景颜色,但是如何为每个单元格设置不同的颜色?我有一个有两列和一到一千行的表。

words.getColumn("columnNameHere").setCellRenderer(
    new DefaultTableCellRenderer() {
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            setText(value.toString());
            setBackground(Color.RED);
            return this;
        }
    }
);

【问题讨论】:

  • 还可以考虑覆盖prepareRenderer(),与TableCellRenderer here相比。

标签: java jtable cell background-color


【解决方案1】:

行号和列号被传递到getTableCellRendererComponent。所以你可以这样做:

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    setText(value.toString());
    if (row==12 && column==2) {
        setBackground(Color.RED);
    }
    return this;
}

【讨论】:

    猜你喜欢
    • 2011-08-14
    • 2011-08-06
    • 2011-11-03
    • 2014-08-24
    • 2012-09-03
    • 2018-08-20
    • 2011-09-24
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多