如何在javafx中创建弹出窗口

2022-09-02 00:34:33

我想在JavaFX应用程序中创建一个弹出窗口。给我一些想法。

enter image description here

当我点击检查按钮时,它会打开弹出窗口。怎么办?


答案 1

您可以创建一个新的 ,将控件添加到其中,或者如果您需要 POPUP as 框,则可以考虑使用 DialogsFXControlsFX(需要 JavaFX8)StageDialog

要创建新阶段,可以使用以下代码段

@Override
public void start(final Stage primaryStage) {
    Button btn = new Button();
    btn.setText("Open Dialog");
    btn.setOnAction(
        new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                final Stage dialog = new Stage();
                dialog.initModality(Modality.APPLICATION_MODAL);
                dialog.initOwner(primaryStage);
                VBox dialogVbox = new VBox(20);
                dialogVbox.getChildren().add(new Text("This is a Dialog"));
                Scene dialogScene = new Scene(dialogVbox, 300, 200);
                dialog.setScene(dialogScene);
                dialog.show();
            }
         });
    }

如果您不希望它是(阻止其他窗口),请使用:modal

dialog.initModality(Modality.NONE);

答案 2

弹出类可能比 Stage 类更好,具体取决于所需的内容。Stage 要么是模式的(你无法单击应用中的任何其他内容),要么在单击应用中的其他位置(因为它是一个单独的窗口)时消失。弹出窗口保持在顶部,但不是模态的。

请参阅此弹出窗口示例。


推荐