我有一个使用 Java 7 中的 Swing 基于被动 MVP 架构构建的应用程序。我的 Presenter 类执行一些耗时的任务,而我的 View/GUI 仅在事件发生后调用 Presenter 的方法。演示者调用 View 的方法来更新 GUI。
显然,我不希望长时间运行的任务在 EDT 上发生。
我的第一个想法是使用 SwingWorker,但由于它只有一个 doInBackground 方法,我想我必须为 Presenter 中的每个方法实现一个 SwingWorker。 或者我会吗?
是否有一种简单的方法可以使 View/GUI 在 EDT 上运行,而其他所有内容(即 Presenter 的逻辑,无需调用更新 View)在另一个(工作)线程上运行?
最佳答案
您可以当场创建 SwingWorker,并将每个演示者的代码包装在该 SwingWorker 中并按照命令设计模式调用它。当然,问题在于细节,包括代码的详细信息,以及我们现在没有的信息。
关于java - 如何用 Java 制作响应式 MVP Swing GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703105/