代码之家  ›  专栏  ›  技术社区  ›  Vitzal

使用Alert JavaFX更改场景

  •  0
  • Vitzal  · 技术社区  · 3 年前

    我正在使用JavaFX并尝试制作一个小型GUI应用程序,用户可以在其中与spacetraders进行交互。io API。 我已经实现了一个警报对话框,当用户试图进行任何交易(购买船只、获得贷款、购买商品、销售商品……)时,一旦用户确认了他们的交易,该阶段将切换到显示交易结果的阶段。

    Correct Display

    警报对话框功能正常,但阶段切换会出现问题。当我切换舞台时,由于一些奇怪的原因,整个场景没有加载,后退按钮被切断。

    Chopped Off Display

    然后,当我点击窗口上的任意位置时,舞台将完全显示,如第一张图所示。(只需点击窗口内的任意位置)。

    当我移除警报时,舞台会正常加载。但当我将相同的代码放入ifPresent lambda时,stage无法完全/正确加载。

    Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Are you sure you want to obtain this loan?");
    alert.showAndWait().ifPresent(response -> {
        if (response == ButtonType.OK) {
            BorderPane borderPane = new BorderPane();
            //make title, backbtn, res
            borderPane.setTop(title);
            borderPane.setBottom(backBtn);
            borderPane.setCenter(res);
            Scene scene = new Scene(borderPane, 600, 400);
            primaryStage.setScene(scene);
            primaryStage.show();
            event.consume();
        }
    });
    

    我看了医生,似乎不明白为什么会这样?欢迎任何解决方案?

    0 回复  |  直到 3 年前