Java 如何在JFrame中捕获JDialogs窗口关闭事件
我有一个主要的JFrame运行我的应用程序。它调用一个JDialog类来执行一个实用程序函数,在执行其函数后,用户关闭对话框。我希望JFrame检测JDialog是否已关闭。换句话说,当对话框关闭时,我如何从中触发事件,然后在JFrame上捕获它。谢谢。您可以实现WindowListener并将其添加到JDialog中。关闭JDialog后,可以将查找的逻辑放在WindowListener的windowClosed或windowClosed方法中。有关如何实现此侦听器的更多信息,请参阅Oracle的。下面是使用WindowAdapter类(WindowListener的空实现)覆盖windowClosed方法的示例:Java 如何在JFrame中捕获JDialogs窗口关闭事件,java,Java,我有一个主要的JFrame运行我的应用程序。它调用一个JDialog类来执行一个实用程序函数,在执行其函数后,用户关闭对话框。我希望JFrame检测JDialog是否已关闭。换句话说,当对话框关闭时,我如何从中触发事件,然后在JFrame上捕获它。谢谢。您可以实现WindowListener并将其添加到JDialog中。关闭JDialog后,可以将查找的逻辑放在WindowListener的windowClosed或windowClosed方法中。有关如何实现此侦听器的更多信息,请参阅Oracl
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()建议/帖子中获得了有用的想法。让我试一试。。非常感谢大家。。真正欣赏