在运行时更改标头的颜色

时间:2015-09-09 09:03:46

标签: java swing jtable jtableheader

我使用下面的代码来更改表格的颜色,它适用于行,但不适用于列。

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;
        };

    };

此处nameRownumbernameColumnNumber的类型为ArrayList<Integer>,我在运行时为它们分配了哪些行和列需要突出显示的值。

0 个答案:

没有答案