如何在Java中制作响应式MVP Swing GUI?

时间:2014-11-02 18:59:10

标签: java swing user-interface mvp swingworker

我有一个使用Java 7中的Swing构建在被动MVP架构上的应用程序。我的Presenter类执行一些耗时的任务,我的View / GUI只在事件发生后调用presenter的方法。演示者调用视图的方法来更新GUI。

显然,我不希望在EDT上发生长时间运行的任务。

我的第一个想法是使用SwingWorker,但由于它只有一个doInBackground方法,我想我必须为Presenter中的每一个方法实现一个SwingWorker。 或者我会吗?

是否有一种简单的方法可以在另一个(工作人员)线程上使EDT和其他所有内容(即Presenter的逻辑没有调用更新View)上运行View / GUI?

1 个答案:

答案 0 :(得分:1)

您可以在现场创建SwingWorker,并将每个演示者的代码包装在SwingWorker中,并按照Command设计模式的方式调用它。魔鬼当然会在细节中,包括你的代码细节,我们现在没有的信息。