如何在Netbeans中自定义jTable标题列字体大小?

时间:2017-01-21 04:51:09

标签: java swing netbeans

我尝试在jtable中更改Netbeans标题字体大小。但还不行。无论如何,表行字体大小都已成功更改。

以下是我使用的方式:

?

更改后的输出:

?

问题:标题字体大小未更改。但我也想改变它。所以请帮我怎么做。

1 个答案:

答案 0 :(得分:4)

一种方法是使用UIManager并将默认Font替换为您想要的

Font font = UIManager.getFont("TableHeader.font");
font = font.deriveFont(48f);
UIManager.put("TableHeader.font", font);

这将替换系统中所有表使用的字体

Column Headers

另一种方法是为要更改的列提供自定义TableCellRenderer,这需要更多工作,但可以提供更大的灵活性,因为您可以决定要应用它们的位置。你可以将它包装在你自己的自定义JTableHeader中,但我只是提供一些基本的想法。

public class HeaderRenderer implements UIResource, TableCellRenderer {

    private TableCellRenderer original;

    public HeaderRenderer(TableCellRenderer original) {
        this.original = original;
    }

    @Override
    public Component getTableCellRendererComponent(JTable table,
                                                                                                 Object value, boolean isSelected, boolean hasFocus, int row,
                                                                                                 int column) {
        Component comp = original.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        comp.setFont(comp.getFont().deriveFont(Font.BOLD));
        return comp;
    }

}

使用类似......

之类的东西安装
HeaderRenderer header = new HeaderRenderer(table.getTableHeader().getDefaultRenderer());
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setHeaderRenderer(header);

并产生类似......

的东西

Custom Column Header

Credit to Kleopatra for this idea

它的长短之处在于,您将不得不弄脏并编写一些代码,表单编辑器不会为您做任何事情