【问题标题】:Force JavaFX Hi-DPI mode to be enabled强制启用 JavaFX Hi-DPI 模式
【发布时间】:2015-05-08 18:06:41
【问题描述】:

有没有办法“强制”JavaFX 启用 Hi-DPI 模式?也许通过一些特定的虚拟机参数或什么?这对于调试/测试应用程序而无需访问相应的显示非常有用。

这个问题已经很好地涵盖了有关 JavaFX 8 的 Hi-DPI 模式的基础知识,但它没有提供任何“强制”该模式处于活动状态的方法:JavaFX 8 HiDPI Support

【问题讨论】:

    标签: java javafx jvm retina-display retina


    【解决方案1】:

    您是否尝试过使用:

    -Dprism.allowhidpi="true"
    

    作为命令行选项,或调用:

    System.setProperty("prism.allowhidpi", "true");
    

    在您的申请开始时?

    我无法在 Windows 上测试它,但在 Android (JavaFXPorts) 上,当设置为自定义属性文件中的属性时它可以工作(默认情况下为 true,这将禁用它):

    prism.allowhidpi=false
    

    【讨论】:

    • 我已经尝试了这两个建议,但不幸的是它们似乎没有改变任何东西......如果这有什么不同的话,我正在使用 OS X Yosemite......
    • 你能发布-Dprism.verbose="true"给你的东西吗?在 Windows 上,我注意到使用-Dprism.allowhidpi="false" 我得到Not opting in for HiDPI pixel scaling,而-Dprism.allowhidpi="true" 得到Opting in for HiDPI pixel scaling
    • 我得到相同的输出。有趣的是,当我没有设置allowhidpi 标志时,我也会得到Opting in for HiDPI scaling。我猜这只是允许 JavaFX 使用HiDPI 缩放,而不是强制 它使用它!?
    • 所以默认情况下JavaFX会默认尝试使用Hi-DPI,但正如你所说,它不会强制它。也许你必须在你的显示器上模拟它(检查这个question)。
    • 谢谢!!使用 DELL XPS-13 和 QHD 屏幕在 Windows10 上成功测试,但我将其设置为“false”以让 Windows10 进行缩放而不是 JAVAFX
    【解决方案2】:

    对于 Windows 7,此 JVM 参数适用于我 (Java 8u102),并且必须使用所有 dpi 设置自动缩放。激活 Hi DPI 的最小设置设置为 1 (100%)。如果没有此设置,Windows 7 中的 125% dpi 设置将不会自动缩放,而 150% 和 200% 会:

    -Dglass.win.minHiDPI=1
    

    在 JavaFX Ant deploy 中,可以像这样应用上述设置:

    <fx:deploy
       <fx:platform javafx="2.1+">
           <fx:property name="glass.win.minHiDPI" value="1"/>
       </fx:platform>
    </fx:deploy>
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2012-02-14
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      相关资源
      最近更新 更多