Java MVC模型通知要查看的事件
当我的模型更改时,我正在尝试向视图通知事件。 我的模型已经扩展了另一个类(来自JADE平台的代理),所以我不能使用Observale。我不想做真正的MVC,只想从我的模型中触发一个事件并改变我的视图。在我的例子中,只有一个视图、模型和控制器 模型 我的控制器Java MVC模型通知要查看的事件,java,model-view-controller,gtk,agents-jade,Java,Model View Controller,Gtk,Agents Jade,当我的模型更改时,我正在尝试向视图通知事件。 我的模型已经扩展了另一个类(来自JADE平台的代理),所以我不能使用Observale。我不想做真正的MVC,只想从我的模型中触发一个事件并改变我的视图。在我的例子中,只有一个视图、模型和控制器 模型 我的控制器 public class SeekerController { private final AgentSeeker model; private final AgentSeekerView view; public
public class SeekerController {
private final AgentSeeker model;
private final AgentSeekerView view;
public SeekerController(AgentSeeker model, AgentSeekerView view) {
this.model = model;
this.view = view;
}
}
当我将音乐添加到我的MusicPurchased列表时,我也想将此音乐从视图添加到我的文本缓冲区。调用什么
AgentSeeker.buyMusic()
?你的模型和视图都是Gobject吗?这是一个来自JADE的代理,他有一个OneShotBehavior,名为buyMusic()。简单地说,就是模型本身。我的视图使用TextView(GObject),我的模型使用ArrayList(Object)。目前这两者之间没有联系。您可以在这里看到完整的实现代码
public class AgentSeekerView extends AbstractAgentView {
TextView textViewMusicPurchased;
public AgentSeekerView() {
super("AgentSeeker.glade");
}
protected void initComposant() {
super.initComposant();
textViewMusicPurchased = (TextView) builder.getObject("music_purchased");
}
public void addMusicPurchasedToConsole(String music) {
TextBuffer textBuffer = textViewMusicPurchased.getBuffer();
textBuffer.insert(textBuffer.getIterEnd(), music + '\n');
}
}
public class SeekerController {
private final AgentSeeker model;
private final AgentSeekerView view;
public SeekerController(AgentSeeker model, AgentSeekerView view) {
this.model = model;
this.view = view;
}
}