如果您有一台DPI超过150的显示器(例如Macbook Pro),您可能还会发现问题:Java Swing应用程序上的字体对于高DPI显示器来说太小了,我根本无法更改字体大小(直接忽略Windows DPI,仅显示非常原始的DPI-> 96。除了更改屏幕分辨率外,我无能为力,这绝对会使LCD上的所有内容变得模糊。
是的,我有一台具有高DPI监视器的笔记本电脑,分辨率为1920x1080,分辨率为15.6',某些Java桌面应用程序在我的笔记本电脑上看起来很小,例如Matlab,Burpsuite等。我已经在互联网上搜索了很长时间了,但是仍然找不到解决问题的方法。我知道我可以通过更改JRE字体JRE_HOME/lib/font/fontconfig.properties.src
,但是找不到任何位置来设置Java桌面字体的默认字体大小或DPI。
问题没有解决办法吗?您有高DPI监视器吗?您如何使用此类应用程序?Swing会放弃DPI高用户吗?
我目前正在Windows上调查此问题。这是我发现的:
大多数Swing Look&Feels根本不支持高DPI,即使Nimbus可以扩展,它也不支持。我发现一些老博客文章说,Nimbus最终可能会提供较高的DPI缩放比例,但显然这从未发生过。
一个例外是系统LAF,但在所有DPI设置下,其默认字体均比实际系统字体大小小10%。此外,必须按照此处所述明确选择系统:http : //docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
您也无法在Swing中设置单个缩放比例。特定的LAF必须提供代码来处理缩放。因此,您最好的选择是System,并希望它足够好。
但是,JavaFX可以正确地自动扩展到我的系统上的最大150%。如果有可能,我建议您使用JavaFX来构建GUI。
编辑:我做了几个小型测试程序,并为各种GUI框架,Swing主题和DPI设置拍摄了比较屏幕截图。这对于阅读此问题的人可能是有益的:http : //kynosarges.org/GuiDpiScaling.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句