Java 如何设置JTableHeader的外观、感觉和颜色

Java 如何设置JTableHeader的外观、感觉和颜色,java,swing,background-color,look-and-feel,jtableheader,Java,Swing,Background Color,Look And Feel,Jtableheader,这是我的第一篇文章,所以任何关于如何让我的文章更好的建议都会很棒 在这个网站的研究帮助下,我能够生成一个表格,我可以改变字体,改变对齐方式,并保持当前的外观和感觉。然而,我不能改变颜色,也不知道该怎么办。如有任何建议,将不胜感激 创建JTable后,我调用: table.getTableHeader().setDefaultRenderer(新的HeaderRenderer(表)) 有人能告诉我一个方向或帮助我创建一个表头,该表头可以着色、居中,并且具有“Nimbus”的外观和感觉吗?所有Nim

这是我的第一篇文章,所以任何关于如何让我的文章更好的建议都会很棒

在这个网站的研究帮助下,我能够生成一个表格,我可以改变字体,改变对齐方式,并保持当前的外观和感觉。然而,我不能改变颜色,也不知道该怎么办。如有任何建议,将不胜感激

创建JTable后,我调用:

table.getTableHeader().setDefaultRenderer(新的HeaderRenderer(表))


有人能告诉我一个方向或帮助我创建一个表头,该表头可以着色、居中,并且具有“Nimbus”的外观和感觉吗?

所有Nimbus属性都作为键存储在UIManager的默认表中。您可以检索和修改这些值中的任何一个,以自定义应用程序的外观。页面列出了所有的Nimbus默认值

private class HeaderRenderer implements TableCellRenderer {

    DefaultTableCellRenderer renderer;

    public HeaderRenderer(JTable table) {
        setOpaque(true);//this is an attempt to change color
        renderer = (DefaultTableCellRenderer)
            table.getTableHeader().getDefaultRenderer();
        renderer.setHorizontalAlignment(JLabel.CENTER);
    }

    @Override
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int col) {
        Component cell = renderer.getTableCellRendererComponent(
                table, value, isSelected, hasFocus, row, col);

        setBackground(headerColor);//this is an attempt to change color
        //cell.setBackground(headerColor);//this is an attempt to change color
        cell.setFont(headerFont);//this successfully changes font
        return cell;
    }
}