我的项目已经完成,所以我在IntelliJ中创建了一个JAR。第一阶段(javaFX)正在显示,但是当我点击按钮创建一个新阶段时,没有任何事情发生(期望旧阶段关闭,这是预期的)。为什么运行时没有创建新阶段?
view.getStartButton().setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
view.getScene().getWindow().hide();
GameView view = new GameView();
TetrisSpelEigenschappen model = new TetrisSpelEigenschappen();
TetrisSpel spel = new TetrisSpel(model);
TetrisBlokken blokmodel = new TetrisBlokken(spel,model);
GamePresenter gamePresenter = new GamePresenter(view, model, spel, blokmodel);
Stage gameStage = new Stage();
Scene gameScene = new Scene(view);
gameStage.setScene(gameScene);
gameStage.setTitle("Game");
gameStage.centerOnScreen();
gamePresenter.addWindowEventHandlers();
gameStage.showAndWait();
}
答案 0 :(得分:1)
默认情况下,应用程序将在最后一个窗口关闭时退出。因为在您的代码中,您在打开新窗口之前关闭现有窗口,我怀疑正在发生的事情是平台正在中间退出。 (注意这种行为有点脆弱......)
添加行
Platform.setImplicitExit(false);
到Application
班级的init()
或start(...)
方法。