我指的是这个 Nimbus 参考.
我尝试将全局字体设置得稍大一些:
UIManager.put("defaultFont", new Font(Font.SANS_SERIF, 0, 16));
...仅适用于菜单,但是nothing其他(按钮、标签)。
我尝试更改标签和按钮字体
UIManager.put("Button.font", new Font(Font.SANS_SERIF, 0, 16));
UIManager.put("Label.font", new Font(Font.SANS_SERIF, 0, 16));
但字体remains.
唯一对我有用的是deriving a font:
someButton.setFont(someButton.getFont().deriveFont(16f));
但这不是一个选择,因为必须这样做each手动元素。
请注意,为 UIManager 派生字体不起作用 either:
UIManager.put("Label.font",
UIManager.getFont("Label.font").deriveFont(16f));
我在 Linux 和 Windows 下测试了所有内容:行为相同。
我只是无法理解 API 为何会如此混乱。如果调用一个方法
然后设置字体(..)我期待它设置字体。如果此方法失败
在任何可以想到的情况下设置字体,那么它应该被弃用。
EDIT:
该问题不仅适用于 Nimbus,也适用于默认的 LAF。