Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JFrame中捕获JDialogs窗口关闭事件_Java - Fatal编程技术网

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

Java 如何在JFrame中捕获JDialogs窗口关闭事件,java,Java,我有一个主要的JFrame运行我的应用程序。它调用一个JDialog类来执行一个实用程序函数,在执行其函数后,用户关闭对话框。我希望JFrame检测JDialog是否已关闭。换句话说,当对话框关闭时,我如何从中触发事件,然后在JFrame上捕获它。谢谢。您可以实现WindowListener并将其添加到JDialog中。关闭JDialog后,可以将查找的逻辑放在WindowListener的windowClosed或windowClosed方法中。有关如何实现此侦听器的更多信息,请参阅Oracl

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

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

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

您应该在JDialog中添加一个窗口侦听器

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。

我认为您可以向它添加一个
WindowListener
,这可能是您想要的。这比您的答案要好,但问题是如何在jFrame中捕获jdialog的窗口关闭事件。因为我希望jframe在jdialog关闭后检测并执行特定操作。如果可能,请提供一个例子。谢谢。经过后期编辑,但没有与您的代码相关的细节,它是相当抽象的。关闭JDialog时,EDT将调用windowClosed。只需将WindowListener从可以访问JFrame对象的位置添加到JDialog中,就可以根据需要调用它的方法或访问它的变量。我们从myJframe.dosomething()建议/帖子中获得了有用的想法。让我试一试。。非常感谢大家。。真正欣赏