我有一个
Java应用程序,用于启动Swing用户界面.该接口是一个具有封装的JFrame实例的类.问题是应用程序分配了一些资源,Swing接口使用这些资源,但应用程序关闭资源而不是用户界面.
我怎样才能实现主应用程序在完整的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的特定实例.