3

我正在开发一个 MVC 架构中的项目。它应该是一个简单的应用程序来管理一些客户。

有 MainModel、MainView 和 MainController 类,它们使主窗口显示客户表的内容,并让用户插入、删除或编辑客户。

我的问题是插入和编辑按钮应该显示一些对话框窗口,让用户插入和编辑一些文本值,我有一些疑问。

我想问你几个问题:

  • 我应该为每个对话窗口使用 MVC 架构吗?
  • 如果是,我已经尝试过这样做,但我的对话框窗口是模态的,所以我的代码运行模型,运行视图,但它在视图中被阻止并且它不运行控制器类。我该如何解决?

    例如,它在“new InsertCustomerController ...”指令中被阻止:

        CustomerModel customerModel = new CustomerModel();
        InsertCustomerView insertCustomerView = new insertCustomerView(customerModel);
        new InsertCustomerController(insertCustomerView, customerModel);
    

非常感谢。

4

2 回答 2

2

无论使用何种模式,您都可以使用观察者模式来使您的对话与应用程序的模型保持同步。此示例使用PropertyChangeListener; 这里提到了其他方法。

于 2012-09-27T03:38:59.130 回答
0

尽管我无法从您的帖子中完全看出,但我不确定您是否以正确的方式考虑 MVC。但是,假设您有一个 Customer、CustomerView 和 CustomerController 类。

客户可以包含与成为客户相关的所有业务逻辑——因此它可能具有 setBalance(int newBalance)、getBalance() 等方法。

CustomerView 类本质上可以是 JPanel 或 JFrame 的子类(因为看起来您正在使用问题标签中的 Swing)。此类将代表一个客户实例。也许你可以有一个私有的 Customer类变量。此类的职责应仅包括向包含在其 Customer 实例中的用户显示数据以及允许他们对其进行修改。

很难说 CustomerController 会做什么,因为我对您的应用程序一无所知,但它可能包含 ActionListener 以及有助于将输入和输出路由到模型和视图的不同部分的那种东西。

我做了一些谷歌搜索,发现了一个非常简单的例子,你可能想看看:http ://www.austintek.com/mvc/

祝你好运。希望这可以帮助。

于 2012-09-26T21:27:35.223 回答