【发布时间】:2011-10-31 13:28:43
【问题描述】:
我有一个用于启动 Swing 用户界面的 Java 应用程序。该接口是一个封装了 JFrame 实例的类。问题是应用程序分配了一些资源,而 Swing 界面使用了这些资源,但应用程序关闭了资源而不是用户界面。
我怎样才能使主应用程序在完整的 Swing 界面关闭时收到通知,或者 Swing 界面的启动在它关闭之前一直阻塞。 Closed 表示 JFrame WindowListener 的WindowAdapter.windowClosed(WindowEvent) 方法已经被调用。
当 JFrame 不可见时,该线程 (link) 的解决方案似乎返回,这是否包括 WINDOW_CLOSED 事件处理?
编辑:也许这将是实现此生命周期接口的解决方案:
public interface Lifecycle {
public void startup();
public void shutdown();
}
现在 Swing 接口类必须在 WindowEvent.WINDOW_CLOSED 事件的处理程序中调用主应用程序的 shutdown() 方法。
这样做是否可行并且是一种好的做法?
【问题讨论】: