sách gpt4 ai đã đi

Java Swing HiDPI 缩放

In lại 作者:行者123 更新时间:2023-12-05 06:25:54 29 4
mua khóa gpt4 Nike

我使用 Java 8 创建了一个程序,该程序在 Eclipse IDE 中使用了 Swing GUI。为了将图像和图标缩放到适当的大小,它获取并使用屏幕分辨率。在 Eclipse 中编译程序后,程序显示得非常好,一切似乎都在按预期运行。但是,当我将项目导出为“可运行的 Jar”并运行程序时,图像缩放和程序外观都关闭了。

经过进一步调查,可运行 jar 返回的屏幕分辨率似乎比 eclipse 中的屏幕分辨率低 2.5 倍(这是实际分辨率 - 3840x2160 与 1536x864)。互联网上有间接证据表明 Java 8 Look and Feels(或类似的东西)不支持 HiDPI 屏幕缩放。有零散的解决方案声称可以解决该问题,例如更新到 Java 8 之后的版本,或者通过向 jar 编译添加参数(无论那是什么意思)。这已经让 Java 新手感到困惑,而且在 Eclipse IDE 中运行/编译时完美显示的程序只会让情况更加困惑。

我的问题是,是否有人知道如何使用 Swing 在 Java 中编译程序以在 HiDPI 屏幕上正确缩放,以及编译工作程序需要遵循什么过程?

编辑 1:值得注意的是,在我的 Windows 设置中,“缩放和布局”、“更改文本、应用程序和其他项目的大小”正好设置为 250%,这意味着此设置显然我遇到的缩放问题的原因。有人知道如何从程序中绕过这个设置,或者为什么当我通过 Eclipse 运行它时它有效吗?

1 Câu trả lời

Java 8 不支持高 DPI。在 Windows 上,它以 DPI 无意识模式运行,并依赖 Windows 将窗口位图拉伸(stretch)到设置中为显示器设置的比例。这意味着应用程序的 UI 在高 DPI 显示器上显示时看起来很模糊。

Java 的更高版本,Java 11 及更高版本,支持每个显示器的高 DPI 设置。您的应用程序的 UI 已根据设置正确放大,文本保持清晰。为了使图标和图像保持清晰,您应该使用 MultiResolutionImage或其基本实现 BaseMultiResolutionImage提供更高分辨率的替代方案。

您的图像不应基于屏幕分辨率,而应基于为监视器设置的比例。例如,150% 比例的全高清显示器 1920×1080 的有效分辨率为 1280×720,这是 Java 报告给您的有效分辨率。

关于Java Swing HiDPI 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56618089/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com