如何在Windows / Linux上设置Java Swing应用程序的DPI?

如果您有一个DPI超过150的显示器(例如Macbook Pro),您可能还会发现问题: ,我根本无法更改字体大小(直接忽略Windows DPI,仅显示 。除了更改屏幕分辨率外,我什么也不能做,这绝对会使LCD上的所有内容变得模糊。

是的,我有一台具有高DPI监视器的笔记本电脑,分辨率为1920x1080,分辨率为15.6’,某些Java桌面应用在笔记本电脑上看起来很小,例如Matlab,Burpsuite等。我已经在互联网上搜索了很长时间了,但是仍然找不到解决问题的方法。我知道我可以通过更改JRE字体JRE_HOME/lib/font/fontconfig.properties.src,但是找不到任何位置来设置Java桌面字体的默认字体大小或DPI。

问题没有解决办法吗?您有高DPI监视器吗?您如何使用此类应用程序?Swing是否会放弃DPI高用户?

回答:

我目前正在Windows上调查此问题。这是我发现的:

大多数Swing

Look&Feel根本不支持高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

以上是 如何在Windows / Linux上设置Java Swing应用程序的DPI? 的全部内容, 来源链接: utcz.com/qa/405298.html

回到顶部