这个Swing代码是如何工作的?

5 java user-interface swing dialog jdialog

我在Java/Swing GUI项目中看到以下代码:

MyDialog dlg = new MyDialog(parent, isFizz);
MyDialogResults results = dlg.getResults();

eventBus.fireEvent(new MyDialogEvent(results));
Run Code Online (Sandbox Code Playgroud)

在上面的代码中MyDialog extends JDialog.很明显,正在构建子对话框(并以某种方式向最终用户显示),然后当用户退出对话框时(通过单击OK或其他按钮),resultsbean将用于在事件总线上触发新事件.

但我正在努力解决两件事:

  1. Java被告知如何/在哪里实际绘制/向用户显示对话框?和
  2. 在将事件发送到总线之前,Java被告知如何/在哪里挂起/等待用户退出对话框?

是否一个JDialog子项在JDialog创建时始终显示对话框,并且在退出对话框之前不会从构造函数返回?这是MyDialog上面的hte 构造函数的概要:

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

提前感谢任何帮助/洞察力,了解对话框如何打开,"挂起"(虽然我知道它实际上没有挂起/冻结),关闭,然后触发事件.

And*_*son 1

1)

setVisible(true);
Run Code Online (Sandbox Code Playgroud)

2)

super(parent, "My Dialog", true);
Run Code Online (Sandbox Code Playgroud)

阅读 JavaDocs 了解JDialog更多详细信息。

最相关的是: