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 クラスがあるとしましょう..

Customer には、顧客であることに関するすべてのビジネス ロジックを含めることができるため、setBalance(int newBalance)、getBalance() などのメソッドを含めることができます。

CustomerView クラスは、本質的に JPanel または JFrame のサブクラスである可能性があります (質問のタグから Swing を使用しているように見えるため)。このクラスは、1 つの Customer インスタンスを表します。おそらく、プライベート Customerクラス変数を持つことができます。このクラスの責任は、Customer インスタンスに含まれるユーザーにデータを表示することと、ユーザーがデータを変更できるようにすることのみで構成されます。

私はあなたのアプリケーションについて何も知らないので、CustomerController が何をするかを言うのは難しいでしょうが、ActionListeners や、入力と出力をモデルとビューのさまざまな部分にルーティングするのに役立つようなものが含まれる可能性があります。

私はいくつかのグーグルを行い、あなたがチェックしたいと思うかもしれない非常に簡単な例を見つけました: http://www.austintek.com/mvc/

幸運を。お役に立てれば。

于 2012-09-26T21:27:35.223 に答える