我用2019年5月的版本(1903)更新了Windows 10笔记本电脑,JavaFX似乎不再起作用。启动任何JavaFX应用程序后,我在任务栏上看到一个图标,但未创建任何窗口。我的Java是最新的Java 8,最新的Eclipse是IDE。
这是一个已知问题还是我做错了什么?是否有解决方法或解决方法? 谢谢
我创建了一个小应用程序来重现该问题。 如果我注释掉以下行 primaryStage.initStyle(StageStyle.UNDECORATED); 然后它会按预期工作。否则,Windows 10(1903)会挂起,不显示任何窗口。请注意,您将需要在Windows中使用任务管理器来杀死JVM。
package com.alam33;
import java.io.IOException;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Win10_1903Test extends Application {
public Win10_1903Test() {
}
@Override
public void start(Stage primaryStage) throws IOException {
VBox vbox = new VBox();
vbox.setPrefHeight(200);
vbox.setPrefWidth(300);
Scene scene = new Scene(vbox);
primaryStage.setTitle("Win10_1903Test");
primaryStage.setScene(scene);
primaryStage.setFullScreen(true);
/* THIS IS THE OFFENDING LINE */
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:1)
这是Oracle提供的一种解决方法,尽管他们无法复制它。我怀疑问题是特定于机器中的硬件的。
解决方法:添加jvm选项 -Dprism.order = sw
如下所述,这不是一个合适的解决方案,但我将其作为答案,因为它确实有助于确保您的代码正常,这在开发过程中很重要。