
[英]How to communicate between two different perspective of eclipse in java
[英]How to correctly communicate between two different MVC Controllers in Java Swing?
你能解释一下Controller如何以简单但仍然正确的方式调用另一个Controller方法吗?
请提供一些代码!
背景:我有2个不同的控制器 - 视图模型和2个库,他们需要相互通信:
SettingsWindow / SettingsController / SettingsModel:负责应用程序设置。 该模型是单例,因为我需要整个应用程序的设置数据;
用于监视目录的库,每次在特定目录中创建文件时都会创建事件。 受监控的目录路径在SettingsModel中定义; 我正在使用Java 7 WatchService API;
用于监控Web服务器和下载新文件的库。 Web服务器地址和保存目录都在SettingsModel中定义; 我正在使用HttpsUrlConnection和一个计时器;
MainWindow / MainController / MainModel:负责主应用程序窗口,该窗口具有必须在每次在受监视目录中创建新文件时更新的表,以及每次上述库下载文件时。
那么如何正确实例化和传达这4种不同的功能呢?
他们的控制器如何在它们之间进行通信,因为它们都是相关的? 我应该如何根据MVC组织这个项目?
请提供基本的MVC脚手架(骨架)并显示我创建实例的位置,我在哪里以及如何调用彼此方法。 我是Java新手,特别是swing和mvc。 我已经阅读了很多,但我遇到了这种情况。
正如这里所建议的那样, 模型 - 视图 - 控制器和观察者等模式代表了重复出现的设计元素。 一个简单的大纲可以说明类的交互,但一般的解决方案超出了StackOverflow的范围。
不过,看看如何应用这些原则可能会有所帮助。 假设你在下面的教程 ,并实施了WatchService
中SwingWorker
,如图所示这里 。 现在,假设您希望主视图( JTable
)更新自身以响应到达的WatchEvent
。 您可以安排相应的TableModel
将其自身注册为PropertyChangeListener
,如此处和此处所示。 当PropertyChangeEvent
到达时,您更新TableModel
并触发相应的事件以更新JTable
。 已知的TableModel
实现已包含所需的方法。
将使用类似的方法来更新表以响应来自Web的数据。
对于设置,考虑java.util.Preferences
,提到这里 ,或javax.jnlp.BasicService
,讨论在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.