java - 基于 MVC 使用线程的 Swing 应用程序

标签 java swing model-view-controller

我的应用程序有一些在主类中启动的线程。

我想在此 Swing 应用程序中使用 MVC。

Main 类等待来自某个客户端的套接字连接,然后当客户端连接时,我从我创建的 Telnet 类创建一个 telnet 对象。并且此类具有线程将使用的所有共享资源。

在此之后我启动我的线程,将 telnet 对象作为参数传递,因此它将用于同步线程。

我的应用程序中有五个线程:客户端、管理、服务器、节点和代理。

每一个都有特定的功能。

这就是我的场景。

我想在我的应用程序中使用 MVC 来更合理地组织这些线程,并使应用程序更易于维护。

我已经在 Swing 应用程序中使用了 MVC,但是没有线程。

最佳答案

也许是我,但你的问题对我来说似乎仍然很广泛,所以我只能提供广泛的建议。

  • 我的重点是对象如何相互通信,我认为这对我来说比“线程”如何通信更重要。
  • 我认为最好是使用观察者模式。
  • 如果您的线程是使用 SwingWorker 创建的,那么您可以通过两种主要方式与您的 Swing 应用程序进行通信:
    • 您可以使用发布/处理方法对,将对象传递给发布方法调用,然后进行 Swing 调用,或许可以通过 process 方法更改模型的状态。我也不喜欢这种方法,因为增加了耦合,因为 SwingWorker 必须知道它在 process 方法内部调用的 View 或控制代码的结构和行为。
    • 或者您可以使用 SwingWorker 的固有 SwingPropertyChangeSupport 能力来允许监听器(此处为 Controller )收到工作人员状态变化的通知。然后 Controller 可以提取已更改的信息并将其传递给模型。我倾向于赞成这种方法,因为对我来说,松散耦合要容易得多。

关于java - 基于 MVC 使用线程的 Swing 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699403/

相关文章:

java - 如何解决Windows 10操作系统下Selenium连接不安全的问题?请帮助 SELENIUM firefox 测试自动化社区

java - 框架未显示正确使用 Swing

java - org.springframework.web.servlet.DispatcherServlet noHandlerFound 404错误响应

c# - 格式化字符串/电话号码

javascript - Ember JS 过渡到嵌套路由,其中​​所有路由都是 View 中的动态段

java - Spring Data Rest FetchType

java - 如何检查时间是否在一个范围内?

java - 显示24小时格式的时间?

java - 如何显示插入主面板内子面板中的jbutton?

swing - 获取 Swing 组件的默认背景色