Java 如何让父窗口捕捉到子窗口的关闭事件
在Java中,可以通过监听子窗口的关闭事件,从而让父窗口捕捉到子窗口的关闭动作。下面我们将介绍一个简单的方案,通过代码示例来演示这一过程。
项目方案
1. 创建父窗口和子窗口
首先,我们创建一个父窗口和一个子窗口,代码如下:
import javax.swing.*;
public class ParentWindow extends JFrame {
public ParentWindow() {
setTitle("Parent Window");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
ChildWindow childWindow = new ChildWindow(this);
childWindow.setVisible(true);
}
public void childWindowClosed() {
System.out.println("Child window has been closed.");
}
public static void main(String[] args) {
new ParentWindow();
}
}
class ChildWindow extends JFrame {
private ParentWindow parentWindow;
public ChildWindow(ParentWindow parentWindow) {
this.parentWindow = parentWindow;
setTitle("Child Window");
setSize(200, 150);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
@Override
public void dispose() {
parentWindow.childWindowClosed();
super.dispose();
}
}
2. 监听子窗口关闭事件
在子窗口的dispose()
方法中,调用父窗口的childWindowClosed()
方法,以通知父窗口子窗口已关闭。父窗口可以在该方法中执行相应的操作。
流程图
flowchart TD
A[创建父窗口] --> B[创建子窗口]
B --> C[监听子窗口关闭事件]
C --> D[通知父窗口子窗口已关闭]
通过以上方案,父窗口可以捕捉到子窗口的关闭事件,从而实现相应的逻辑处理。这种设计模式在Java GUI应用程序中经常被使用,能够很好地解耦父子窗口之间的关系,提高代码的灵活性和可维护性。