更改jTable中行的颜色

时间:2013-06-03 09:08:28

标签: java swing netbeans jtable tablecellrenderer

我有一个jTable如下:

enter image description here

我希望当Quantité中的值小于Min seuil de suantité中的值时,将行的颜色更改为粉红色。

在程序的加载中一切正常,但是当我点击表格时会发生一些事件,即使Quantité的值不小于Min seuil de quantité,所有行的颜色也会改变。 public class CustomTableCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent( table, obj, isSelected, hasFocus, row, column); setHorizontalAlignment(SwingConstants.LEFT); int selectedRow = table.convertRowIndexToModel(row); if (table.getModel().getValueAt(selectedRow, 3) != null && table.getModel().getValueAt(selectedRow, 4) != null) { int quantite = Integer.parseInt(table.getModel().getValueAt(selectedRow, 3).toString()); int minQuantite = Integer.parseInt(table.getModel().getValueAt(selectedRow, 4).toString()); if (quantite < minQuantite) { if (isSelected) { cell.setBackground(new Color(255, 138, 239)); } else { cell.setBackground(new Color(252, 189, 252)); } } } return cell; } } 的价值:

enter image description here

这是我的单元格渲染:

private void cellRendering(){
        for (int i = 0; i < masterTable.getColumnCount(); i++) {
            tcol = masterTable.getColumnModel().getColumn(i);
            tcol.setCellRenderer(new CustomTableCellRenderer());
        }
    }

这是允许我影响我的表格的单元格渲染的代码:

{{1}}

1 个答案:

答案 0 :(得分:1)

renderer是一张橡皮图章,记住最后涂抹的墨水。每次调用渲染器时,请务必设置所需的颜色。可以找到更多详细信息here