如何根据JTable值为JTable中的单元格设置颜色?

时间:2015-10-10 22:27:29

标签: java swing jtable tablecellrenderer

我试图将单元格中数字的颜色设置为红色(如果是负数),如果是正数则设置为绿色。

这是我的表:

private void setTable(Object[][] rowData, Object[] columnNames) {
    table = new JTable(rowData, columnNames) {

        @Override
        public boolean isCellEditable(int row, int column) {                
                return false;               
        };
    };
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.getColumnModel().getColumn(0).setPreferredWidth(60);
    table.getColumnModel().getColumn(0).setResizable(false);
    table.getColumnModel().getColumn(1).setPreferredWidth(365);
    table.getColumnModel().getColumn(1).setResizable(false);
    table.getColumnModel().getColumn(2).setPreferredWidth(50);
    table.getColumnModel().getColumn(2).setResizable(false);

    DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
    rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
    table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);
}

第3列包含正数/负数。

1 个答案:

答案 0 :(得分:0)

创建一个自定义TableCellRenderer,它使用JLabel作为其组件,并根据其值更改其背景颜色(@see getTableCellRendererComponent方法)。