我在 Java/Swing GUI 项目中看到以下代码:
MyDialog dlg = new MyDialog(parent, isFizz);
MyDialogResults results = dlg.getResults();
eventBus.fireEvent(new MyDialogEvent(results));
在上面的代码中,MyDialog extends JDialog
. 很明显,正在构建一个子对话框(并以某种方式显示给最终用户),然后当用户退出对话框时(通过单击 OK 或其他按钮),一个results
bean 用于在事件总线上触发一个新事件.
但我正在努力解决两件事:
- Java 如何/在哪里被告知实际向用户绘制/显示对话框?和
- 在将事件触发到总线之前,Java 如何/在哪里被告知挂起/等待用户退出对话框?
是不是一个JDialog
孩子在创建时总是会显示对话框JDialog
,并且在退出对话框之前不会从构造函数返回?这是上面的 hteMyDialog
构造函数的概要:
public class MyDialog extends JDialog {
private boolean isFizz;
private MyDialogResults results;
// Getters and setters for all properties...
public MyDialog(Frame parent, boolean isFizz) {
super(parent, "My Dialog", true);
setIsFizz(isFizz);
setVisible(true);
dispose();
}
}
提前感谢您对了解对话框如何打开、“挂起”(尽管我知道它实际上并未挂起/冻结)、关闭然后触发事件的任何帮助/见解。