在运行时更改 header 的颜色
Change color of header at runtime
我正在使用下面的代码更改 table 的颜色,它适用于行,但不适用于列。
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>
,我在运行时为它们赋值,其中行和列需要突出显示。
table header 使用不同的渲染器。
您可以使用以下方式设置渲染器:
table.getTableHeader().setDefaultRenderer( ... );
我正在使用下面的代码更改 table 的颜色,它适用于行,但不适用于列。
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>
,我在运行时为它们赋值,其中行和列需要突出显示。
table header 使用不同的渲染器。
您可以使用以下方式设置渲染器:
table.getTableHeader().setDefaultRenderer( ... );