特定的一个表头颜色java swing
我想更改特定表格标题的背景色。在我的应用程序中,我必须将当前月份的标题颜色设置为红色。 我的代码在这里::特定的一个表头颜色java swing,swing,Swing,我想更改特定表格标题的背景色。在我的应用程序中,我必须将当前月份的标题颜色设置为红色。 我的代码在这里:: jTable1.getTableHeader(). setDefaultRenderer( new DefaultTableHeaderCellRenderer()); @Override public Component getTableCellRendererComponent(JTable table, Object value,
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;
}
这将使所有标题颜色为红色。
请给我一些建议。
提前感谢。DefaultTableCellRenderer臭名昭著的颜色记忆:-)您必须
- 始终设置背景色:即正常和高亮显示状态的背景色
- 在打电话给super之前请这样做
@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;
}
有关更多详细信息(以及需要的原因),请参阅此答案的a+1和链接答案。现在,这是值得记住的事情,以避免下次我处理表格时浪费大量时间