如何在Java Swing中的两个不同的MVC控制器之间正确通信?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Java Swing中的两个不同的MVC控制器之间正确通信?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1624字,纯文字阅读大概需要3分钟。
内容图文
![如何在Java Swing中的两个不同的MVC控制器之间正确通信?](/upload/InfoBanner/zyjiaocheng/675/36d5b73c632f470da81da9177c620416.jpg)
您能解释一下一个Controller如何以一种简单但仍然正确的方式调用另一个Controller方法吗?
请提供一些代码!
背景:
我有2个不同的Controllers-View-Model和2个库,它们之间需要相互通信:
> SettingsWindow / SettingsController / SettingsModel:负责应用设置.该模型是单例的,因为我需要整个应用程序中的设置数据.
>监视目录的库,每次在特定目录中创建文件时都会创建一个事件.监视的目录路径在SettingsModel中定义;我为此使用Java 7 WatchService API;
>一个用于监视Web服务器并下载新文件的库. Web服务器地址和保存目录都在SettingsModel中定义;我正在使用HttpsUrlConnection和一个计时器;
> MainWindow / MainController / MainModel:负责主应用程序窗口,该窗口具有一个表,该表每次在受监视的目录中创建新文件时都必须更新,并且每次上述库下载文件时都必须更新.
那么,如何正确实例化和传达这4种不同的功能?
由于它们都相关,因此它们的控制器之间如何进行通讯?
我应该如何按照MVC组织这个项目?
请提供基本的MVC框架(骨架),并显示我在哪里创建实例,在何处以及如何调用彼此的方法.我是Java的新手,尤其是swing和mvc.我读了很多书,但是我陷入了这种情况.
解决方法:
如建议的here,诸如模型视图控制器和观察者之类的模式表示重复的设计元素.一个简单的outline可以说明类的交互,但是一般的解决方案超出了StackOverflow的范围.
不过,看看如何应用这些原则可能还是有用的.假设您正在跟随tutorial,并在SwingWorker中实现了WatchService,如here所示.现在,假设您希望主视图JTable响应于一个WatchEvent进行更新.您将安排相应的TableModel作为PropertyChangeListener向工作人员注册,如here和here所示.当PropertyChangeEvent到达时,您将更新TableModel并触发适当的事件以更新JTable.已知的TableModel实现已包含必需的方法.
响应来自网络的数据,将使用类似的方法来更新表.
对于设置,请考虑提及here的java.util.Preferences或讨论here的javax.jnlp.BasicService.
内容总结
以上是互联网集市为您收集整理的如何在Java Swing中的两个不同的MVC控制器之间正确通信?全部内容,希望文章能够帮你解决如何在Java Swing中的两个不同的MVC控制器之间正确通信?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。