【问题标题】:Icons and text look OK in IntelliJ IDE, but they look blurry/scaled up when running the JAR fileIntelliJ IDE 中的图标和文本看起来不错,但在运行 JAR 文件时它们看起来模糊/放大
【发布时间】:2018-07-16 15:13:30
【问题描述】:

我运行的是 64 位 Windows 10 并安装了 JDK 和 JRE 8 (1.8.0_152) 和 9(9.0.1)。

我有一个我正在 IntelliJ IDEA Community 2017.2 中开发的 GUI (Swing)。我已经根据自己的喜好设置了图标和字体大小,并且程序在 IntelliJ 中运行时运行并查看。我创建了一个 Artifact (JAR),如果它在 IntelliJ 中运行,一切都会正确显示。但是,如果我在 IntelliJ 之外运行(双击)JAR 文件,所有图标和文本都会变大/放大,并且看起来很模糊。我让 IntelliJ 使用 1.8 运行所有项目。

我已经阅读了有关 Java/Swing DPI 缩放的信息(显然 Swing 报告说它可以进行缩放或类似的事情,然后 Windows 会尝试扩展程序)但我不完全理解那是什么以及发生了什么.

我还研究过使用 launch4j,因为如果 JAR 被包装,它可能不会受到 DPI 缩放的影响,这是正确的吗?

我可以做些什么来运行我的 JAR 文件并且它看起来与 IntelliJ 中的完全一样?

非常感谢!

P.S.:这是在 IntelliJ 中运行时的程序

这是运行(双击)JAR 时的程序

【问题讨论】:

  • 您是否尝试在 JetBrains Runtime 上运行它?见intellij-support.jetbrains.com/hc/articles/206544879
  • @CrazyCoder 根据您提供的链接,“...JDK (JetBrains Runtime) 与所有产品安装程序捆绑在一起,建议您使用提供的 JDK 版本,除非有任何特定问题. 由于 2017.1 版本 64 位 JDK 默认捆绑在所有系统上...”这是我拥有的关于信息:IntelliJ IDEA 2017.2.6 Build #IC-172.4574.11,建于 2017 年 11 月 13 日 JRE:1.8 .0_152-release-915-b12 amd64 JVM:JetBrains sro Windows 10 10.0 的 OpenJDK 64 位服务器虚拟机
  • 我的意思是用这个运行时运行你的应用程序,而不是 IntelliJ IDEA。
  • @CrazyCoder 有关如何做到这一点的任何指示?谢谢
  • bintray.com/jetbrains/intellij-jdk 下载运行时并使用它来运行您的应用程序而不是Oracle java。

标签: java swing intellij-idea scaling dpi


【解决方案1】:

我已经解决了这个问题!

我在这里找到了这篇文章:

How to set the DPI of Java Swing apps on Windows/Linux?

尽管 OP 遇到了不同的问题(他的 Java Swing 应用程序上的字体太小,应用程序不会自动扩展),但以下两个答案帮助我找到了解决方案:

第一个答案显示了对 Swing LAF(外观和感觉)的一些研究,并且只有 JavaFX 支持在此人的系统上将 DPI 缩放到 150%。

第二个答案告诉使用 JRE 9!!! 运行应用程序,并解释说它支持 Swing 和 AWT 的 DPI 缩放。

所以...我将 IntelliJ 设置为使用 JDK 9 并且...在 IntelliJ 中运行的应用程序中出现了丑陋的图标和放大的文本!!!

然后它击中了我!

我的系统中同时安装了 JRE 8 和 JRE 9(以及 JDK 1.8 和 JDK 9)...当然我的系统使用的是最新的!!! (我只是瞎了眼,实际上我从来没有想过这个)

基本上,我使用 JDK 1.8 在 IntelliJ 中进行开发,然后使用我系统上的默认 JRE(JRE 9,它具有 Swing 应用程序的 DPI 缩放功能)运行 JAR 文件。

我像这样使用 JRE 1.8 显式运行我的 JAR 文件:

c:\path-to-jar>"path-to-my-jre1.8.0_151-javaw.exe" -jar MyJAR.jar

而且...图标和文字显示正确!

希望这对某人有所帮助!

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多