Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing应用程序和JavaBeans中的MVC约定_Java_Model View Controller_Design Patterns_Javabeans - Fatal编程技术网

Java Swing应用程序和JavaBeans中的MVC约定

Java Swing应用程序和JavaBeans中的MVC约定,java,model-view-controller,design-patterns,javabeans,Java,Model View Controller,Design Patterns,Javabeans,我很好奇,MVC约定的视图类是否可以检索bean对象来更改其文本显示。我不是将bean视为我的模型,而是模型更改bean的状态,然后可以由视图使用。根据请求,模型将Bean的对象传递给控制器,然后控制器将其传递给视图。这不好吗 我的意思是: 豆子: 型号: public class Model { Bean e = new Bean(); e.setEventOpportunity(rs.getString(7)); e.setEventMoreDetails(rs.getSt

我很好奇,MVC约定的视图类是否可以检索bean对象来更改其文本显示。我不是将
bean
视为我的
模型
,而是
模型
更改bean的状态,然后可以由
视图
使用。根据请求,模型将Bean的对象传递给控制器,然后控制器将其传递给视图。这不好吗

我的意思是: 豆子:

型号:

public class Model {

Bean e = new Bean();
e.setEventOpportunity(rs.getString(7));
        e.setEventMoreDetails(rs.getString(8));
        e.setEndTime(rs.getString(9));



}
控制:

public class Control () {
public Control() {
Bean events; 
events = model.getEvent(tableClick); //tell model to change its state based on user input on views 
view.changeDisplay(events);
                    }

        }
        } 
观点:

     public class Views {
    public void editTextFields(Bean e) {
       try {
       txtEventName.setText(e.getEventName());
       String dateString = e.getEventDate();


       } catch(Exception te) {
           te.printStackTrace();
       }
   }



    }

这样的设计是否仍然符合mvc惯例。我不希望我的模型很麻烦,因为它处理数据库,并且通过在其中放置Bean属性,类将变得很麻烦

您被MVCs“编辑器不匹配”困住了,即您有一个编辑器/视图和一个模型,而这两个模型无法就如何公开哪些信息达成一致。通常情况下

解决了这个问题,解决方案与您的非常相似


我建议的唯一更改是将“createbean”代码从模型移动到控制器。控制器用于配置模型、视图和视图模型,使其能够很好地协同工作。

图中的“Swing”和“sql”是从哪里来的?@TechSpellBound我不知道,视图实际上是由Swing组件组成的,而模型实际上是在处理sql概念。MM很难理解为什么要这样做。这是我从你的评论中了解到的:1。我应该在控制器中创建bean对象。2.获取模型以将数据库信息传递给控制器3。使用在2中获得的数据,让控制器通过setter配置Bean?如果是这样,为什么模型不更新bean本身,为什么不更新控制器?如果让模型创建bean,那么模型必须知道它。如果您添加了需要不同bean的第二个视图,那么您将不得不更改您的模型(而不仅仅是编写一个新的控制器)。但您可能应该找到更好的方法从模型中获取数据。考虑一种关于配置方法的约定,其中将bean传递给模型,模型使用反射来确定bean中要设置的值。例如,可以使用注释来编码结果集的哪种方法调用,例如,“代码> @ StristBar(7)< /代码>,该代码应转换为<代码> R.GETStand(7)。感谢您的解释,我认为我的应用程序非常简单,视图通过控制器与相应的模型相关。我没有2个或更多的视图需要模型的服务,因此从您的解释来看,我认为最好还是保持原样。我确实有其他观点,但它们是完全不相关的函数集,用于不同的目的。例如,上面是事件,我有联系人的视图。联系人和活动完全不同,因此不应该真正共享同一模式
     public class Views {
    public void editTextFields(Bean e) {
       try {
       txtEventName.setText(e.getEventName());
       String dateString = e.getEventDate();


       } catch(Exception te) {
           te.printStackTrace();
       }
   }



    }