想要实现这样一个功能:
一旦库存量小于用户设置的预警量了,就将零件号设置为红色:如下图
可是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);//设置渲染器