为什么jre-8在我的JavaFX应用程序的右侧和底部添加了额外的空间?

时间:2017-11-25 14:06:34

标签: java java-8 javafx-8

我正在使用JavaFX编写游戏。当我使用 jdk-9 编译代码时,一切正常但是当我使用 jdk-8u102 编译它并运行程序时,有一些额外的空间(关于 10像素)。在这两种情况下, Scene 大小都是正确的但是在java 8的情况下, Stage 在右侧和底部更大(尽管询问舞台的宽度或高度,使用 Stage.getWidth() Stage.getHeight()方法,在两种情况下都返回相同的值)。

我尝试更新为 jdk-8u151 ,但这并没有解决问题。

注意 - 当我使用jdk-8编译程序但使用jre-9运行时,问题就不再存在了。所以我猜,问题可能在于java 8的运行时环境,而不是jdk本身。

我发现 Stage.setResizable(false)导致jre-8出现问题。另外,我正在使用Windows,问题似乎与linux上的jre-8不一样。

以下是该应用程序的代码段:

public void start(Stage primaryStage) throws Exception {
    ImageView spaceBackground = new ImageView("space.jpg");
    spaceBackground.setFitHeight(600);
    spaceBackground.setFitWidth(900);

    Group group = new Group(spaceBackground);
    Scene scene = new Scene(group, 900, 600);  

    primaryStage.setResizable(false);    // this method is causing the problem
    /*
    rest of the code
    */
}

这是在 jre-9 下运行的应用程序窗口的截屏: enter image description here

这是在 jre-8 下运行的那个: notice the white spaces on the right and bottom

谁能告诉我原因可能在这里?

0 个答案:

没有答案