如何在javafx中通过按钮关闭弹出窗口

如何在javafx中通过按钮关闭弹出窗口,java,javafx,Java,Javafx,我正试图通过按钮关闭弹出窗口,但我不知道。 当我使用JavaSwing时,我记得函数是自动的 所以。。我该怎么办 我还想在按钮和文本之间留出更多的空间。如果你有任何想法,请帮助我 Stage dialogStage = new Stage(); dialogStage.initModality(Modality.WINDOW_MODAL); Button button = n

我正试图通过按钮关闭弹出窗口,但我不知道。 当我使用JavaSwing时,我记得函数是自动的

所以。。我该怎么办

我还想在按钮和文本之间留出更多的空间。如果你有任何想法,请帮助我

                    Stage dialogStage = new Stage();
                    dialogStage.initModality(Modality.WINDOW_MODAL);

                    Button button = new Button();
                    button.setOnKeyPressed(new EventHandler<KeyEvent>() {
                        @Override
                        public void handle(KeyEvent event) {
                            if (event.getCode() == KeyCode.ENTER) {


                            }
                        }
                    });

                    VBox vbox = new VBox(new Text("Wrong ID & PW!!"), new Button("Ok."));
                    vbox.setAlignment(Pos.CENTER);
                    vbox.setPadding(new Insets(15));

                    dialogStage.setScene(new Scene(vbox));
                    dialogStage.show();
Stage dialogStage=newstage();
dialogStage.InitModal(MODAL.WINDOW_MODAL);
按钮按钮=新按钮();
setOnKeyPressed(新的EventHandler(){
@凌驾
公共无效句柄(KeyEvent事件){
if(event.getCode()==KeyCode.ENTER){
}
}
});
VBox VBox=新的VBox(新文本(“错误的ID&PW!!”),新按钮(“确定”);
vbox.setAlignment(位置中心);
vbox.setPadding(新插图(15));
dialogStage.setScene(新场景(vbox));
dialogStage.show();

调用dialogStage.close()


但是我想我必须设置控制器,它不起作用。问题在于你的
按钮
你正在创建按钮并添加一个侦听器,但是你正在向问题的代码示例中的
VBox
添加一个新按钮,它从未使用名为
按钮
的按钮。而不是
Button Button=new Button(),写入
按钮按钮=新按钮(“确定”)。不要在VBox构造函数中使用
新建按钮(“确定”)
,只需参考
按钮即可。使用
按钮。设置默认值(true)
而不是为按钮注册按键处理程序。使用
按钮.setOnAction
触发关闭事件处理程序。考虑使用AN而不是创建自己的对话框。
 button.setOnKeyPressed(new EventHandler<KeyEvent>() {
                    @Override
                    public void handle(KeyEvent event) {
                        if (event.getCode() == KeyCode.ENTER) {
                            dialogStage.close();
                        }
                    }
                });
 VBox.setMargin(text, new Insets(20));
 VBox.setMargin(button, new Insets(20));