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

sip*_*amm 2 java swing netbeans

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

这是我使用的方法:

?

更改后的输出:

?

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

Mad*_*mer 5

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

Font font = UIManager.getFont("TableHeader.font");
font = font.deriveFont(48f);
UIManager.put("TableHeader.font", font);
Run Code Online (Sandbox Code Playgroud)

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

列标题

另一种方法是为您想要更改的列提供自定义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;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是使用类似的东西安装的...

HeaderRenderer header = new HeaderRenderer(table.getTableHeader().getDefaultRenderer());
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setHeaderRenderer(header);
Run Code Online (Sandbox Code Playgroud)

并产生类似...

自定义列标题

这个想法归功于克利奥帕特拉

总而言之,您将不得不亲自动手编写一些代码,表单编辑器不会为您做所有事情