如果您的显示器的 DPI 超过 150(例如 Macbook Pro),您也可能会发现问题:Java Swing 应用程序上的字体对于高 DPI 显示器来说太小,而且我根本无法更改字体大小(它直接忽略Windows DPI,只显示最初的 DPI-->96)。我只能改变屏幕分辨率,这绝对会使液晶显示屏上的所有内容变得模糊。
是的,我有一台高 DPI 显示器的笔记本电脑,15.6',分辨率为 1920x1080,一些 Java 桌面应用程序在我的笔记本电脑上看起来很小,例如 Matlab、Burpsuite 等。我在互联网上搜索了很长一段时间,但是仍然找不到解决问题的方法。我知道我可以通过更改 JRE 字体JRE_HOME/lib/font/fontconfig.properties.src
,但我找不到任何地方可以设置 Java 桌面字体的默认字体大小或 DPI。
难道问题就没有解决办法了吗?您有高 DPI 显示器吗?您如何使用此类应用程序? Swing会放弃高DPI用户吗?
我目前正在 Windows 上调查此问题。这是我发现的:
大多数 Swing 外观和感觉根本不支持高 DPI,甚至 Nimbus 也不支持,尽管它应该是可扩展的。我发现一些旧的博客文章说 Nimbus 最终可能会提供高 DPI 缩放,但显然这从未发生过。
系统 LAF 是一个例外,但在所有 DPI 设置下,其默认字体比实际系统字体大小小 10% 左右。此外,必须按照此处所述明确选择系统:http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
在 Swing 中也没有可以设置的单一缩放因子。特定的 LAF 必须提供代码来处理缩放。因此,您能做的最好的事情就是选择“系统”并希望它足够好。
然而,JavaFX 在我的系统上正确且自动地扩展至 150%。如果可能的话,我建议您使用 JavaFX 来构建 GUI。
编辑:我制作了几个小测试程序,并对各种 GUI 框架、Swing 主题和 DPI 设置进行了比较屏幕截图。对于阅读此问题的人来说,这可能会提供一些信息:http://kynosarges.org/GuiDpiScaling.html http://kynosarges.org/GuiDpiScaling.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)