Java Swing应用程序生命周期问题

我有一个
Java应用程序,用于启动Swing用户界面.该接口是一个具有封装的JFrame实例的类.问题是应用程序分配了一些资源,Sw​​ing接口使用这些资源,但应用程序关闭资源而不是用户界面.

我怎样才能实现主应用程序在完整的Swing接口关闭时获取通知,或者Swing接口的开始阻塞直到它关闭. Closed表示已调用JFrame WindowListener的WindowAdapter.windowClosed(WindowEvent)方法.

这个线程(link)的解决方案似乎在JFrame不可见时返回,这是否包括WINDOW_CLOSED事件处理?

编辑:也许它将是实现此生命周期界面的解决方案:

public interface Lifecycle {

    public void startup();

    public void shutdown();

}

现在,Swing接口类必须在WindowEvent.WINDOW_CLOSED事件的处理程序中调用主应用程序的shutdown()方法.

这样做有可能并且有很好的实践吗?

最佳答案 尝试使用Toolkit.getDefaultToolkit().addAWTEventListener().如果您提供适当的事件掩码,您可以获得所需的事件.这没有订阅JFrame的特定实例.

点赞