如何使模态JDialog在显示后立即执行代码

时间:2010-12-27 23:26:39

标签: java swing jdialog

好的,我有一个对象列表。我需要显示一个Modal JDialog,然后将它传递给对象列表并让它对它们起作用。问题是,当我调用.show()时,它劫持了EDT。理想情况是能够将列表传递给构造函数,然后在显示对话框时,执行相关函数。在C#中我会使用Loaded事件,但如何做到这一点JDialog逃脱了我。

思想?

2 个答案:

答案 0 :(得分:4)

JDialog dialog = new JDialog(...);
...
dialog.addComponentListener(new ComponentAdapter()
{
    public void componentShown(ComponentEvent e)
    {
        System.out.println("Time to do something");
    }
});
dialog.setVisible( true );

答案 1 :(得分:1)

JDialog dialog = new JDialog(...);
dialog.addWindowListener(new WindowAdaper() {
    @Override
    public void windowOpened(WindowEvent e) {
        super.windowOpened(e);
        // do something
    }
});

你明白了。