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

时间:2010-02-22 22:55:06

标签: java swing

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

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

代码会增加字体一次,但切换回常规尺寸无效。这在菜单栏中尤为明显。

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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

  

代码会增加字体一次,   但切换回常规尺寸了   没效果

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