我想更改特定表标题的背景颜色。在我的应用中,我必须在当前月份设置标题颜色为红色。
我的代码在这里::
jTable1.getTableHeader().
setDefaultRenderer(
new DefaultTableHeaderCellRenderer());
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
JTableHeader tableHeader = table.getTableHeader();
if(column==1)
tableHeader.setBackground(Color.red);
return this;
}
这会使所有标题颜色变为红色。 请给我一些建议。 提前谢谢。
答案 0 :(得分:6)
DefaultTableCellRenderer的臭名昭着的颜色记忆:-)你必须
类似的东西:
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
if (myHighlightCondition) {
setBackground(Color.RED);
} else {
setBackground(null);
}
super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
return this;
}
有关详情(以及为何需要),请参阅How do I correctly use custom renderers to paint specific cells in a JTable?