2010-02-22 93 views
4

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

我的代码的当前版本不能很好地工作 - 代码遍历存储在UIManager/UIDefaults中的键,并且对于每个键是Font的情况,我的代码会派生一个带有目标点大小的新字体(例如,如果它更大,那么新的点大小通常是16;否则,如果转到常规大小,通常是11),然后将该键和新字体放在UIManager中。之后,代码将调用框架上的SwingUtilities.updateComponentTreeUI(),然后打包框架。

该代码会增加字体一次,但切换回常规大小不起作用。这在菜单栏中尤其明显。

我对此有何看法?我应该用更大的磅值来创建新的外观,还是完全使用其他方法?

在此先感谢您的帮助。

回答

4

的代码将增加字体一次, 但切换回正常大小有 没有影响

我认为你需要更新UIManager的一个FontUIResource,而不仅仅是一个字体。

+0

哇。这非常令人印象深刻。你绝对钉上了它。改变我的代码使用FontUIResource工作奇迹。谢谢! – Mike 2010-02-23 03:00:58

相关问题