无条件地更改JTable单元的背景颜色

时间:2013-03-02 17:23:08

标签: java swing jtable jxtable

我在一个框架中有一个JTable,它经常被不同的线程更新。我正在寻找改变JTable单元格背景颜色的方法,无论其内容如何,​​如

    JTable.setColorAt(Color.YELLOW, 0, 0)

有这样的东西存在吗?如果没有,有没有办法为像我这样的初学者写这样的东西?

请帮助.............

1 个答案:

答案 0 :(得分:4)

定义您自己的单元格渲染器类,为此单元格设置背景颜色

public class MyCellRenderer extends javax.swing.table.DefaultTableCellRenderer {
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        java.awt.Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        cellComponent.setBackground(java.awt.Color.YELLOW);
        return cellComponent;
    }
}

并将其附加到您的表格

MyCellRenderer mcr = new MyCellRenderer();
for (int columnIndex = 0; columnIndex < myTable.getColumnCount(); columnIndex ++) {
            myTable.getColumnModel().getColumn(columnIndex).setCellRenderer(mcr);
        }