1

あいまいなタイトルで申し訳ありませんが、適切な MVC アーキテクチャ ルールに従わずに残念ながらコーディングを開始したアプリケーションをレイアウトしようとしています。次の構造を持つアプリケーションがあります。

JPanel (「MainPanel」) がコンポーネントとして追加された JFrame で、MainPanel には CardLayout 構造があります。MainPanel には複数の JPanel があり、ボタン、Jcombo Box、および List の選択を使用してめくります。

この構造を使用して MVC モデルを実装したいのですが、これを達成する方法を見つけるのが困難です。これまでのところ、GUI コンポーネントを作成したすべての actionListener が内部にあり、それを分離して、MainPanel に追加された各 JPanel のコントローラーを用意したいと考えています。アクション ロジックとデータ アクセスを分離し、CardLayout 構造を維持できるようにこのプログラムを設計するには、どのような方法がありますか?

4

1 に答える 1

2

A Swing Architecture Overviewで述べたように、Swing の分離可能なモデル アーキテクチャは、アプリケーションが多くのモデルを持つ可能性があることを意味します。ボタンとテーブルは一般的な例です。アクションは、メニュー、ボタン、およびその他のコントロールで再利用するコンポーネントの機能をカプセル化する便利な方法です。アプリケーションのモデルについてはあまり詳しく説明していませんが、状態パターンを使用してナビゲーション モデルを簡素化することを検討してください。この答えはまた、いくつかの洞察を提供するかもしれません。

補遺: 具体的な例として、 で使用されるナビゲーション モデルCardPanelは、コンボのDefaultComboBoxModel. そのモデルを拡張することで、ビューは自分自身をリスナーとして登録し、ユーザーがコンボ設定を変更したときに適切に構成することができます。たとえば、関連するビューもリッスンするプログラムのデータ モデルで必要な値は、必須フィールドを示すために強調表示される場合があります。または、現在の状態では意味をなさないコントロールが無効になっているか、非表示になっている可能性があります。

于 2011-07-25T07:44:20.027 に答える