在Swing应用程序中更改运行时的字体大小

如今,许多网站都可以选择让用户增加或减少网站上显示的字体大小。 我想在我的Java Swing应用程序中添加类似的function,可以选择将字体更改为更大的尺寸或恢复为标准尺寸。 用户可以通过菜单项在运行时执行此操作。

我的代码的当前版本工作得不好 – 代码迭代存储在UIManager / UIDefaults中的密钥,对于每个键是Font,我的代码派生出一个具有目标点大小的新字体(例如,如果它更大) ,那么新的点大小通常是16;否则,如果是常规大小,通常是11),然后将该键和新字体放在UIManager中。 然后,代码调用框架上的SwingUtilities.updateComponentTreeUI(),然后打包框架。

代码将增加字体一次,但切换回常规大小无效。 菜单栏尤其明显。

我是以正确的方式来做这件事的吗? 我应该使用更大的磅值来创建新的外观,还是完全使用其他方法?

在此先感谢您的帮助。

代码将增加字体一次,但切换回常规大小无效

我相信您需要使用FontUIResource更新UIManager,而不仅仅是Font。