如何在JFrame中捕获JDialogs窗口关闭事件

时间:2015-04-16 17:34:55

标签: java

我有一个运行我的应用程序的主要JFrame。它调用JDialog类来执行实用程序功能,在执行其功能后,用户关闭对话框。我希望JFrame检测到JDialog已被关闭。换句话说,如何在对话框关闭时从对话框中触发事件,然后在JFrame上捕获它。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以实现WindowListener并将其添加到JDialog。 JDialog关闭后您寻找的逻辑可以放在WindowListener的windowClosed或windowClosing方法中。有关如何实现此侦听器的更多信息,请参阅Oracle的Window Listener Tutorial。下面是使用WindowAdapter类(WindowListener的空实现)并重写windowClosed方法的示例:

myJDialog.addWindowListener(new WindowAdapter(){
    @Override
    public void windowClosed(WindowEvent e){
        myJframe.doSomething();
    }
});

答案 1 :(得分:1)

你应该为你的JDialog添加一个Window Listener

jdialog.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
    System.out.println("jdialog window closed event received");
}

public void windowClosing(WindowEvent e) {
    System.out.println("jdialog window closing event received");
}
});

如果希望事件由特定对象直接处理,则此对象应实现WindowAdapter。例如你的jFrame。