gpt4 book ai didi

Java MVC : Keeping my view updated

转载 作者:行者123 更新时间:2023-12-01 13:37:58 24 4
gpt4 key购买 nike

我正在尝试练习我的 MVC 布局。我正在努力解决的一个问题是在漫长的过程中不断更新我的观点。

我有一个程序可以在我的网站上进行一些抓取。它将数据返回到基于 Swing 的 GUI 中的表中。它在我的程序运行时正在工作,并且在运行结束时它最终更新了表。

在我的模型中,我将结果存储在某种形式的集合中,可能是 ArrayList。在漫长的过程运行时,它会不断更新。我需要一种根据模型中 Arraylist 结果中的信息来更新 View 的方法。

我不确定可以使用什么方法来做到这一点。我正在考虑以某种方式在我的 Controller 中添加一个方法,该方法会在长进程运行时不断检查结果数组列表并更新 View 。或者我应该有某种方法来检查模型何时发生变化?

我真的不知道我需要朝哪个方向去实现这个,我只是在寻找一些指示。

这是我目前的 Controller ,如果您需要更多信息,请告诉我。

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();
}
}

}

最佳答案

如果您希望在列表更新时收到通知,可以使用 ObservableCollection 。每当您的列表被修改时,它就会触发一个事件。

此外,我不确定您是否正确使用该模型。 m_model.processUrl(url); 是 Setter 吗?如果不是,您应该将逻辑从该方法移至 Controller 中。该模型应该只存储具有最少(或没有)逻辑的数据。

关于Java MVC : Keeping my view updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com