我試圖練習我的MVC佈局。我正在努力的一個領域是在漫長的過程中保持我的觀點更新。Java MVC:保持我的視圖更新
我有一個程序,在我的網站上做一些刮。它將數據返回到基於Swing的GUI中的表格。它正在我的程序運行的那一刻工作,在運行結束時它終於更新了表。
在我的模型中,我將結果存儲在某種形式的集合中,可能是一個ArrayList。在長時間運行的過程中,它會不斷更新。我需要根據模型中的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();
}
}
}