即使在EDT被阻止的情况下,JDialog的所有者如何仍然更新它的UI?

时间:2013-11-08 03:16:56

标签: java swing jframe jdialog

我有以下示例代码:

public class MainWindow extends JFrame implements ActionListener {
    public MainWindow() {
       JButton openButton = new JButton('Open');
       openButton.addActionListener(this);
       add(openButton);
    }

    public void actionPerformed(ActionEvent e) {
       // Create and show a modal dialog.
       JDialog dialog = new JDialog(this, true);
       dialog.setVisible(true);
    }
}

当我点击openButton时,它会在事件发送线程上调用actionPerformed(ActionEvent e)dialog.setVisible(true)阻止它。

但是对于更复杂的帧,我注意到它们仍然会从非用户生成的事件(如Timer动作)更新其UI。

在我阻止EDT的任何其他情况下,我的UI完全挂起,但当dialog.setVisible(true)阻止EDT时,所有者的UI会继续更新。

所以我的问题是这是如何工作的?

0 个答案:

没有答案