我有一个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()
方法。
这样做是否可能并且有很好的实践?
答案 0 :(得分:2)
尝试使用Toolkit.getDefaultToolkit().addAWTEventListener()
。如果您提供适当的事件掩码,您可以获得所需的事件。这没有订阅JFrame的特定实例。
答案 1 :(得分:0)
方法应如下