Java 使用相关任务更新GUI
我正在开发一个复杂的多线程应用程序,它与一个用户和多个服务器进行交互。我想向用户显示一致的状态。比如说,当属性A发生变化时,属性B、C、D变得不一致,需要更新——更新可能需要一些复杂的算法来运行,这取决于其他属性。但是属性E不依赖于A,因此它不需要更新 我的问题是,任何线程都可以随时更改任何属性,当然,使用synchronized。因此,当线程使用获取的更新数据完成任务时,这些数据可能已经过时。在我的应用程序的理论推理中,当不需要其他更新时,可能存在一个一致的状态——我想向用户显示这一点Java 使用相关任务更新GUI,java,multithreading,swing,user-interface,dependencies,Java,Multithreading,Swing,User Interface,Dependencies,我正在开发一个复杂的多线程应用程序,它与一个用户和多个服务器进行交互。我想向用户显示一致的状态。比如说,当属性A发生变化时,属性B、C、D变得不一致,需要更新——更新可能需要一些复杂的算法来运行,这取决于其他属性。但是属性E不依赖于A,因此它不需要更新 我的问题是,任何线程都可以随时更改任何属性,当然,使用synchronized。因此,当线程使用获取的更新数据完成任务时,这些数据可能已经过时。在我的应用程序的理论推理中,当不需要其他更新时,可能存在一个一致的状态——我想向用户显示这一点 GUI
GUI多线程应用程序通常如何管理这些依赖关系?目前,我使用的是时间戳,但这不足以解决更复杂的依赖关系。我曾考虑使用gradle或maven,但这似乎有些过分,GUI应用程序应该保持快速响应。我想到了一个解决方案,但是以后它可能需要额外的扩展,因此我宁愿使用一些现有的解决方案。Java Swing提供了侦听器,这样作为开发人员,您就可以知道什么时候发生了动作,比如按下按钮 同样,线程可以提供操作侦听器,以便Swing GUI可以知道何时更新属性 您必须编写这些操作侦听器。在Javadoc中可以找到一个示例
阅读本文,了解编写事件监听器的另一个例子。我不确定是否理解你想要什么,但可能你看起来像观测者模式,在swing gui应用程序中,请参见
PropertyChangeListener
我想做一些更复杂的事情,但现在看来事件监听器应该足够了。谢谢