我正在使用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
*/
}
谁能告诉我原因可能在这里?