我目前正在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



