繁体   English   中英

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

[英]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的特定实例。

方法应如下

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM