我一直在尝试使用自定义TableCellRenderer为完整的JTable行着色,但出于某种原因,它只为我的第一个和最后一个单元格着色。
我想基于第二个和第四个值进行着色,在这种情况下:5和10.如果第二个值小于第四个值,则将其着色为红色。如果它的颜色相同则为黄色。
正如你在下面看到的那样它很好,但由于某种原因,它只会对第一个和最后一个单元格进行着色,而且我一直在撞墙试图让它工作。
我认为我在覆盖的getTableCellRendererComponent中做错了什么:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
Integer minStock = (Integer) table.getModel().getValueAt(row, 3);
Integer currentStock = (Integer) table.getModel().getValueAt(row, 1);
if (Objects.equals(minStock, currentStock)) {
setBackground(Color.YELLOW);
} else if (minStock > currentStock) {
setBackground(Color.RED);
} else {
setBackground(table.getBackground());
setForeground(table.getForeground());
}
return this;
}
如果有人能告诉我如何解决这个问题,我将不胜感激!