[英]Java Swing application lifecycle problem
我有一个Java应用程序,用于启动Swing用户界面。 接口是带有封装的JFrame实例的类。 问题在于,应用程序分配了一些资源,而Swing界面使用了这些资源,但是应用程序关闭了资源, 而不是用户界面。
当完整的Swing接口关闭时,如何实现主应用程序得到通知,或者直到关闭它为止,Swing接口的开始都会阻塞。 关闭表示JFrame WindowListener的WindowAdapter.windowClosed(WindowEvent)
方法已被调用。
当JFrame不可见时,此线程( 链接 )的解决方案似乎返回,这是否包括WINDOW_CLOSED
事件处理?
编辑:也许它将是实现此生命周期接口的解决方案:
public interface Lifecycle {
public void startup();
public void shutdown();
}
现在,Swing接口类必须在WindowEvent.WINDOW_CLOSED事件的处理程序中调用主应用程序的shutdown()
方法。
这样做是否可行并且是一个好习惯?
尝试使用Toolkit.getDefaultToolkit().addAWTEventListener()
。 如果提供适当的事件掩码,则可以获取所需的事件。 这无需订阅JFrame的特定实例。
方法应如下
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.