此代码示例显示但未关闭JavaFx上的javafx.scene.control.Dialog:
Dialog<Void> dialog = new Dialog<Void>();
dialog.show();
dialog.close();
Run Code Online (Sandbox Code Playgroud)
要么
Dialog<Void> dialog = new Dialog<Void>();
dialog.show();
dialog.hide();
Run Code Online (Sandbox Code Playgroud)
为什么?
小智 21
我不确定为什么上面的回答被标记为答案,因为它显然没有回答这个问题.基本问题似乎是无法以编程方式关闭没有"关闭/取消"按钮的对话框:
对话框打开,但不关闭:
Dialog<Void> dialog = new Dialog<Void>();
dialog.show();
dialog.close();
Run Code Online (Sandbox Code Playgroud)
要关闭,请在关闭它之前为其添加一个取消按钮:
Dialog<Void> dialog = new Dialog<Void>();
dialog.show();
// Add dummy cancel button
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.CANCEL);
// Dialog will now close
dialog.close();
Run Code Online (Sandbox Code Playgroud)
Mic*_*ton 11
更短(但不是更少"hacky"方法)是使用特定类型的对话框(除了Void)并在隐藏它之前直接设置(任意)结果,例如:
Dialog<Boolean> dialog = new Dialog<Boolean>();
dialog.show();
...
// for closing
dialog.setResult(Boolean.TRUE);
dialog.close();
Run Code Online (Sandbox Code Playgroud)