我想更改特定表头的背景颜色.在我的应用中,我必须在当前月份设置标题颜色为红色.
我的代码在这里::
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;
}
Run Code Online (Sandbox Code Playgroud)
这使得所有标题颜色都是红色的.请给我一些建议.提前致谢.
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;
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息(以及为什么需要),请参阅如何正确使用自定义渲染器绘制JTable中的特定单元格?
| 归档时间: |
|
| 查看次数: |
1822 次 |
| 最近记录: |