如何在javafx中创建弹出窗口

Mau*_*tel 19 java javafx javafx-2 scenebuilder javafx-8

我想在javafx application中创建一个弹出窗口.给我一些想法.
在此输入图像描述

当我点击复选按钮打开弹出窗口.怎么做?

Ita*_*iha 36

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

要创建新舞台,您可以使用以下代码段

@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();
            }
         });
    }
Run Code Online (Sandbox Code Playgroud)

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

dialog.initModality(Modality.NONE);
Run Code Online (Sandbox Code Playgroud)


Rya*_*anR 5

Popup类可能比Stage类更好,具体取决于您的需要.舞台是模态的(您无法点击应用中的任何其他内容),或者如果您点击应用中的其他位置(因为它是一个单独的窗口),它就会消失.弹出窗口保持在顶部但不是模态的.

请参见此弹出窗口示例.