我想更改行的颜色,因此我创建了自己的单元格渲染器:
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
if (row % 2 == 1) {
setBackground(new Color(245, 245, 245));
}
if (row % 2 == 0) {
setBackground(Color.white);
}
setHorizontalAlignment(JLabel.CENTER);
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
这个工作正常,直到我想将图像添加到单元格,所以我覆盖表中的方法:
@Override
public Class getColumnClass(int column) {
if (column == 4) {
return ImageIcon.class;
}
return Object.class;
}
现在第四列仍为白色,不会改变颜色。
我如何同时实施所有这些事情?
建议
答案 0 :(得分:3)
我想改变颜色
Table Row Rendering显示了一种简单的方法。您不需要自定义渲染器。但是你仍然需要覆盖getColumnClass()方法来显示你的Icon。