我尝试在jtable
中更改Netbeans
标题字体大小。但还不行。无论如何,表行字体大小都已成功更改。
以下是我使用的方式:
更改后的输出:
问题:标题字体大小未更改。但我也想改变它。所以请帮我怎么做。
答案 0 :(得分:4)
一种方法是使用UIManager
并将默认Font
替换为您想要的
Font font = UIManager.getFont("TableHeader.font");
font = font.deriveFont(48f);
UIManager.put("TableHeader.font", font);
这将替换系统中所有表使用的字体
另一种方法是为要更改的列提供自定义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);
并产生类似......
的东西Credit to Kleopatra for this idea
它的长短之处在于,您将不得不弄脏并编写一些代码,表单编辑器不会为您做任何事情