JavaFX中showAndWait背后的代码是什么?

时间:2015-09-30 07:17:26

标签: java javafx javafx-2 javafx-8 javafxports

我开发了一个小型JavaFX应用程序,可部署在Android设备中。因为,在当前版本的JavaFXPorts中尚不支持Alert,所以我自己实现了对话框。我的问题是:我不知道如何实现showAndWait功能。有人知道这个想法吗?

以下是代码:

private static int status;
public static int showConfirm(String message){
    status = 0;

    black = new StackPane();
    black.setStyle("-fx-background-color: black; -fx-opacity: 0.7;");
    black.setPrefSize(Main.WIDTH, Main.HEIGHT);

    Label label = new Label(message);
    label.setStyle("-fx-font-size: 22px;");
    label.setWrapText(true);

    Button okBtn = new Button("OK");
    okBtn.getStyleClass().add("terminal-button");
    okBtn.setPrefWidth(120);
    okBtn.setOnAction(new EventHandler<ActionEvent>(){
        @Override
        public void handle(ActionEvent event) {
            status = 1;
            Dialog.hide();
        }
    });

    Button cancelBtn = new Button("Cancel");
    cancelBtn.getStyleClass().add("terminal-button");
    cancelBtn.setPrefWidth(120);
    cancelBtn.setOnAction(new EventHandler<ActionEvent>(){
        @Override
        public void handle(ActionEvent event) {
            status = -1;
            Dialog.hide();
        }
    });

    HBox btnContainer = new HBox(10);
    btnContainer.setAlignment(Pos.CENTER_RIGHT);
    btnContainer.getChildren().addAll(okBtn,cancelBtn);

    VBox root = new VBox(30);
    root.setStyle("-fx-background-color: white;");
    root.setPadding(new Insets(20));
    root.setPrefWidth(Main.WIDTH - 200);
    root.getChildren().addAll(label,btnContainer);

    Group container = new Group();
    container.getChildren().add(root);

    Main.PAGE.getChildren().add(black);
    Main.PAGE.getChildren().add(container);

    return status;
}

0 个答案:

没有答案