JavaFX:打开新阶段

时间:2018-01-06 23:34:38

标签: javafx hover stage

所以我在JavaFX上制作游戏,我有一个主舞台,我希望在游戏开始之前弹出一条消息。当你击中太空时(开始游戏),弹出窗口会消失。要开始新游戏(游戏结束后),你必须点击主舞台上的“新游戏”按钮。

这有效,但只有一个问题。由于弹出窗口在用户单击“新游戏”后立即激活,因此按钮在悬停时卡住。因此,在新游戏开始后,按钮仍然是较浅的阴影。我不想删除悬停效果,但我希望它在游戏开始后立即消失。我相信正在发生的事情是,当弹出阶段打开时,下面的主要阶段不会记录鼠标移动,因此它无法移除悬停。

以下是位于主舞台控制器中的弹出窗口的代码:

public void showPopUp() {

    try {

        Stage stage = new Stage();

        Parent root = FXMLLoader.load(getClass().getResource("popUp.fxml"));
        Scene scene = new Scene(root, 210,55);
        stage.setScene(scene);
        stage.initStyle(StageStyle.UNDECORATED);
        stage.initModality(Modality.APPLICATION_MODAL);

        stage.show();

        scene.setOnKeyPressed(e -> {
            if ((e.getCode() == KeyCode.SPACE)) {
                stage.close();
                startGame();
            }
        });

    } catch (IOException ieo) {
        ieo.printStackTrace();
    }
}

以下是该问题的记录: https://www.dropbox.com/s/y1d778l92mmknzb/Snake%20Game%20Recording.mov?dl=0

0 个答案:

没有答案