【发布时间】:2017-01-18 10:00:11
【问题描述】:
如果我的问题已经有了答案,我深表歉意,但我找不到解决方案。我想制作一个基本上有两个文本字段和两个组合框的应用程序,您可以在其中选择一个增量步骤,当您单击开始时,您可以看到每个文本框中的数字每秒都在不同的步骤中变化。我设法使用两个线程在一个文件中完成它,但我想以 MVC 方式完成它。换句话说,我有一个Controller 类来处理View 点击,并从我的Model 类运行一个线程,它在循环的每次迭代中返回值,然后我将该值传递给@ 987654325@ 方法来可视化它。在单个类中,我可以在循环本身中轻松完成:
while(!isInterrupted()){
count += step;
textField1.setText(count);
sleep(1000);
}
但是,我认为有两种方法可以做到这一点。将 View 的引用传递给 Model,并从 Model 类中操作文本字段,我觉得这与 MVC 将模型和视图分开的想法背道而驰。或者以某种方式使用Callable 或Future(我真的不知道它们是如何工作的,以及它们是否会在我的情况下工作)在while 循环的每次迭代中将count 值传递给Controller,然后将其传递给View。
你认为我应该怎么做,还有其他(更好的)方法吗?
【问题讨论】:
-
“将视图的引用传递给模型,并从模型类中操作文本字段”——从而破坏 MVC ... 除了从非 GUI 线程操作 GUI 之外。 Android 不会让你编译它。 您需要Listener。
-
你能详细回答一下吗?
标签: java multithreading model-view-controller future callable