2

私はその言語で書かれたカスタムJavaFX-2コンポーネントを持っておりfxml(これを子供または子供として参照します)、それを使用しJavaFX Scene Builderて作成しました。私のビュークラスの1つは、それらのコンポーネントのいくつか(〜100)を表示し、それらと通信する必要があります。アーキテクチャを念頭MVCに置いて、コミュニケーションのための最良のアプローチは何ですか?

  1. (コンテナ)モデル->(子供)モデル
  2. (コンテナ)コントローラー->(子供)コントローラー
  3. (コンテナ)コントローラー->(子供)モデル

基本的に、少なくとも子UIまたはコンテナオブジェクトで発生するイベントの2つのケースを監視できる必要があります。

ケース1:ユーザーがカスタムコンポーネント(子)内にあるボタンをクリックした(または別のオブジェクトを操作した)場合、コンテナーは変更について通信する必要があります。

ケース2:ユーザーがコンテナでイベントをトリガーし、特定のクエリに基づいてコンポーネントをフィルタリングしました。たとえば、この変更について子供たちに伝える必要があります。

すべての助けを事前に感謝します。乾杯

4

1 に答える 1

1

私のモデルはPOJOですが、データを格納するためにjavafxプロパティを使用していますが、私は常にコントローラー間の通信を維持する傾向があります。これはオプション#2にマッピングされているようです。

親コントローラーが子コントローラーを呼び出すのはかなり簡単です。必要なのは、それらをロードしてリストに保持することだけです。親を呼び出す子は、親への参照が必要になる可能性があるため、もう少し醜いです。親がリスナーを追加する子コントローラーにイベントハンドラープロパティを設定することで、これを回避しようとしています。これにより、私の子供のコントロールは非常に再利用可能になりました。

于 2012-11-01T10:37:44.227 に答える