gpt4 book ai didi

Java Swing MVC问题

转载 作者:行者123 更新时间:2023-12-02 00:52:23 26 4
gpt4 key购买 nike

我正在遵循这个 MVC 模型: http://java.sun.com/developer/technicalArticles/javase/mvc/

在我的模型中,我有一个“ArrayList Shapes”字段,我需要 View 中的形状。

通过 modelPropertyChange 方法获取形状是获取形状的唯一方法吗?

public void modelPropertyChange(PropertyChangeEvent evt) {

if (evt.getPropertyName().equals(MyController.PROPERTY_TEXT)) {
ArrayList<Shape> shapes = (ArrayList<Shape>) evt.getNewValue();
}

}

或者我还应该在我的 Controller 中创建一个通用的 getter 方法吗?就像这个通用的 setter 方法:

   protected void setModelProperty(String propertyName, Object newValue) {

for (AbstractModel model: registeredModels) {
try {

Method method = model.getClass().
getMethod("set"+propertyName, new Class[] {
newValue.getClass()
}


);
method.invoke(model, newValue);

} catch (Exception ex) {
// Handle exception.
}
}
}

如果我需要这样的通用 getter 方法,我不知道如何将上面的通用 setter 转换为通用 getter 方法。如果我不需要这样的通用 getter 方法来从模型中检索数据,如果我只需要 View 中的 modelPropertyChange 方法。应用程序第一次启动时如何从模型中获取数据? :o

噗,我需要从我的 View 中的模型中获取形状数组列表:((后来我还需要获取一些其他数据)太令人困惑了:(

最佳答案

通常使用 MVC, View 将调用 Control 类中的 getter。如果您正在检索的数据已准备好供 View 使用,则 Control 类中的 getter 通常只是一个调用模型中适当 getter 的委托(delegate)方法;但是,如果从模型检索的数据在准备显示之前需要对其执行一些计算,则 View 将从 Control 类调用 getter,该类将从 Model 调用 getter,执行所需的计算,最后返回 View 。从你的问题的声音来看,这就是你想要澄清的部分。

希望这有帮助:-)

关于Java Swing MVC问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489174/

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