【发布时间】:2014-01-14 12:47:38
【问题描述】:
我正在尝试练习我的 MVC 布局。我正在努力解决的一个领域是在漫长的过程中保持我的观点更新。
我有一个程序可以在我的网站上进行一些抓取。它将数据返回到我基于 Swing 的 GUI 中的表中。它在我的程序运行的那一刻工作,并在运行结束时最终更新表。
在我的模型中,我将结果存储在某种形式的集合中,可能是 ArrayList。在长进程运行时,它会不断更新。我需要一种根据模型中 Arraylist 结果中的信息更新视图的方法。
我不确定我可以使用什么方法来做到这一点。我正在考虑以某种方式在我的控制器中放置一个方法,该方法会在长进程运行时不断检查结果数组列表并更新视图。或者我应该有一些方法来检查模型何时发生变化?
我真的不知道我需要朝哪个方向去实现它,我只是在寻找一些指针。
这是我目前的控制器,如果您需要更多信息,请告诉我。
public class BrowseController {
private BrowseModel m_model;
private BrowseView m_view;
public BrowseController(BrowseModel model, BrowseView view) {
m_model = model;
m_view = view;
view.addRunListener(new RunListener());
view.addClearListener(new ClearListener());
}
class RunListener implements ActionListener{
public void actionPerformed(ActionEvent e){
m_view.setStatus("running");
HashSet<String> urls = m_view.getTargetUrls();
for (String url : urls){
m_model.processUrl(url);
m_view.setResult(m_model.getResults());
}
}
}
class ClearListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("clear");
m_view.reset();
m_model.reset();
}
}
}
【问题讨论】:
标签: java swing user-interface model-view-controller view