我使用下面的代码来更改表格的颜色,它适用于行,但不适用于列。
DefaultTableCellRenderer defaultTableCellRenderer = new DefaultTableCellRenderer() {
private static final long serialVersionUID = 1567316215541963628L;
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
c.setBackground(row % 2 == 0 ? Color.white : new Color(0xE8E8E8));
c.setForeground(Color.black);
// c.setForeground(Color.black);
c.setFont(getFont().deriveFont(14.0f));
if (row == table.getRowCount() - 1) {
c.setForeground(Color.white);
c.setBackground(Color.gray);
}
if (nameRownumber.contains(row)) {
c.setBackground(Color.yellow);
}
if (nameColumnNumber.contains(column)) {
c.setBackground(Color.yellow);
}
return c;
};
};
此处nameRownumber
和nameColumnNumber
的类型为ArrayList<Integer>
,我在运行时为它们分配了哪些行和列需要突出显示的值。