现在很多网站都可以选择让用户增加或减少网站上显示的字体大小。我想在我的Java Swing应用程序中添加类似的功能,可以选择将字体更改为更大的尺寸或恢复为标准尺寸。用户可以通过菜单项在运行时执行此操作。
我的代码的当前版本运行不正常 - 代码迭代存储在UIManager / UIDefaults中的密钥,对于每个键是Font,我的代码派生出一个具有目标点大小的新字体(例如,如果它更大,那么新的点大小通常是16;否则,如果是常规大小,通常是11),然后将该键和新字体放入UIManager。然后,代码在框架上调用SwingUtilities.updateComponentTreeUI(),然后打包框架。
代码会增加字体一次,但切换回常规尺寸无效。这在菜单栏中尤为明显。
我是以正确的方式来做这件事的吗?我应该用更大的点大小创建一个新的外观,还是完全使用其他方法?
提前感谢您的帮助。
答案 0 :(得分:4)
代码会增加字体一次, 但切换回常规尺寸了 没效果
我相信您需要使用FontUIResource更新UIManager,而不仅仅是Font。