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

Java Swing应用程序生命周期问题,java,swing,Java,Swing,我有一个Java应用程序,用于启动Swing用户界面。接口是一个带有封装JFrame实例的类。问题是应用程序分配了一些资源,Swing接口使用这些资源,但是应用程序关闭了资源,而不是用户界面 如何实现主应用程序在关闭完整的Swing接口时收到通知,或者Swing接口的开始被阻塞,直到关闭为止。Closed表示已调用JFrame WindowListener的方法 这个线程()的解决方案似乎在JFrame不可见时返回,这是否包括窗口关闭事件处理 编辑:也许这将是实现此生命周期界面的解决方案: pu

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

如何实现主应用程序在关闭完整的Swing接口时收到通知,或者Swing接口的开始被阻塞,直到关闭为止。Closed表示已调用JFrame WindowListener的方法

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

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

public interface Lifecycle {

    public void startup();

    public void shutdown();

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


这样做是否可能并且是一种好的做法?

尝试使用
Toolkit.getDefaultToolkit().addAWTEventListener()
。如果提供适当的事件掩码,则可以获得所需的事件。这不需要订阅JFrame的特定实例

方法应如下所示

  • 资源关闭应引发一个事件
  • 封装JFrame的类应该侦听资源关闭事件
  • 侦听器应该调用JFrame.setEnabled(false)方法使其禁用

具有JFrame的类不知道如何关闭资源,因为关闭此JFrame将触发关闭资源。Stefan(关于我的问题写得如此含糊不清)也许你已经半途而废了