swing JTable表格变颜色

想要实现这样一个功能:

一旦库存量小于用户设置的预警量了,就将零件号设置为红色:如下图


可是JTable设置的都是整行变红。

 实践好久终于解决:

public class RedCellRenderer extends DefaultTableCellRenderer {


    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

        Component com = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
        //在渲染器渲染每个cell的时候判断列数是否是第一列
        if (column == 1 && ((Integer)table.getModel().getValueAt(row, 4)).intValue() < ((Integer)table.getModel().getValueAt(row, 7)).intValue() )                  //此处加入条件判断
            com.setBackground(Color.RED);
        else
            com.setBackground(Color.white);

        return com;
    }
}

并为jTable设置此渲染器

RedCellRenderer rcr = new RedCellRenderer();
rcr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);//内容居中显示
jTable.setDefaultRenderer(Object.class, rcr);//设置渲染器



猜你喜欢

转载自blog.csdn.net/fantalee/article/details/80624546