gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:52:39 24 4
gpt4 key购买 nike

如果您有一台 DPI 超过 150 的显示器(例如 Macbook Pro),您也可能会发现问题:Java Swing 应用程序上的字体对于高 DPI 显示器来说太小了,我根本无法更改字体大小(它直接忽略 Windows DPI,只显示 非常原始的 DPI-->96)。我只能改变屏幕分辨率,这绝对会使 LCD 上的一切变得模糊。

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

问题没有解决方案吗?你有高 DPI 显示器吗?你如何处理这些应用程序? Swing 会放弃高 DPI 用户吗?

最佳答案

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

大多数 Swing 外观和感觉根本不支持高 DPI,即使 Nimbus 也不支持,即使它应该是可扩展的。我发现一些旧博客文章说 Nimbus 最终可能会提供高 DPI 缩放,但显然这从未发生过。

一个异常(exception)是系统 LAF,但在所有 DPI 设置下,它的默认字体比实际系统字体大小小约 10%。此外,必须明确选择系统,如下所述: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

也没有可以在 Swing 中设置的单一缩放因子。特定的 LAF 必须提供代码来处理缩放。所以你能做的最好的就是选择系统并希望它足够好。

但是,JavaFX 在我的系统上可以正确地自动扩展至 150%。如果可能的话,我建议您使用 JavaFX 来构建您的 GUI。

编辑:我制作了几个小测试程序,并为各种 GUI 框架、Swing 主题和 DPI 设置截取了比较截图。这可能对阅读此问题的人有用:http://kynosarges.org/GuiDpiScaling.html

关于java - 如何在 Windows/Linux 上设置 Java Swing 应用程序的 DPI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com