当前位置: 首页 > 知识库问答 >
问题:

如何使响应MVP摇摆GUI在Java?

秦凯旋
2023-03-14

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

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

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

有没有一种简单的方法可以让View/GUI在EDT上运行,以及在另一个(工作线程)线程上运行其他所有东西(即演示者的逻辑,而不需要调用它来更新视图)?

共有1个答案

朱承载
2023-03-14

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

 类似资料:
  • 例: “foo”和“bar”可以是任何字符串键,但它们在键集中应该是唯一的。 我知道,使用Swagger,我可以定义一个对象数组,但这给出了一个不同的API,因为那时我们将拥有如下内容: 我已经阅读了“开放API规范”-“添加地图数据类型支持#38”页面。据我了解,它推荐使用additionalProperties,但似乎并没有回答我的需求(或者说与我使用的Swagger UI 2.1.4不兼容)

  • 我试图为下面的JSON创建一个swagger文档,但是我得到了下面的错误:带有“type: array”的模式需要一个同级“items:”字段 JSON: 有人能帮我得到这个JSON的招摇博士。 任何帮助都将不胜感激。

  • 问题内容: 在JFrame中,当我单击“登录”时,我弹出另一个Jframe,即登录窗口。 在执行其他操作之前,如何使主Jframe等待登录Jframe退出? 问题答案: 只需使用模式对话框代替框架即可,这样在关闭对话框之前您无法做其他任何事情 有关说明,请参见http://mindprod.com/jgloss/modal.html;有关代码示例,请参见http://www.java2s.com/

  • 这个问题是不是太长了?请原谅,我是新来的。请编辑并建议。 控制器类:

  • 嗯,这是一个非常新的提示。我声明要在window builder的帮助下自己编写GUI应用程序的代码,我已经决定停止使用netbeans,因为我在这里读到一些人说这很好。你可能认为我没有调查,但相信我,我做了功课。。。 我尝试了甲骨文所说的方式: > 公共类MyClass实现ActionListener{ someComponent。addActionListener(instanceOfMyCl

  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }