同时关闭两个JDialog

时间:2014-09-12 20:14:36

标签: java swing jdialog windowlistener

让我们假设两个JDialogs,j1和j2,当我点击" X"时,我需要关闭j2。 j1上的按钮。

我尝试在j1上实现WindowListener,我在j2.dispose()windowClosing()方法中使用了windowClosed(),但它没有用。

是否可以在" X"上放置一个actionPerformed?按钮例如?或者是否可以使用windowListener来完成它?以及如何使用?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

我猜您忘了添加WindowListener。在System.out.println方法中添加WindowListener,看看他们是否真正被调用。

以下是您所描述内容的实例:

public class Test {

    public static void main(String[] args) {
        final JDialog jd1 = new JDialog((JFrame) null, "Dialog 1", false);
        jd1.setVisible(true);

        JDialog jd2 = new JDialog((JFrame) null, "Dialog 2", false);
        jd2.setVisible(true);
        jd2.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent we) {
                jd1.dispose();
            }
        });
    }
}

答案 1 :(得分:2)

  

是否可以在" X"上放置一个actionPerformed?按钮例如?

在此帖子中查看我的答案:Associate predefined action to close button Java JDialog