2

JTreeJava Swing デスクトップ アプリケーションで使用します。私はそれについて読みMVC Design pattern、それによると、Modelのクラスを使用して、のデータモデルをそのプレゼンテーション部分からSwing Components分離する必要があります。JComponent

だから私の簡単な質問は次のとおりです。

  • JTree(TreeModel newModel)

  • JTree(Object[] value)

  • JTree(TreeNode root)

  • JTree(Vector<?> value)

  • JTree(HashTable<?, ?> value)

を作成するための上記のオプションのうちJTree

Q1. パターンJTree(TreeModel newModel)を適用するために常に使用する方が良いですか?MVC

4

2 に答える 2

7

それはあなたのニーズに依存します。私は、非モデル オブジェクトを入力として受け取る Swing コンポーネント コンストラクターは、実際には迅速なプロトタイピングの近道であると考える傾向があります。実際、内部では、Swing コンポーネントが入力オブジェクトからモデルを作成します。これは、すべてのイベントを正しく送信するためにモデル オブジェクトが必要になるためです。

結果として、ここに私のアドバイスがあります:

  • 高速なプロトタイプを作成するには、これらの「モックのような」コンストラクターの使用を検討してください。
  • 「実際の」アプリケーションでは、遅かれ早かれ特定のイベント送信の必要性が生じるため、それらについて考えることさえしないでください (1 つのノードのレンダリングを変更したり、ツリーを成長させたりするなど)。
于 2010-03-11T10:06:14.170 に答える
2

Riduidel が言ったように、JTree は常に内部で TreeModel を使用するため、他のコンストラクターは単に便宜上のものです。

モデルを設定 (および置換) する setModel(JTree) メソッドもあります。重要なアプリケーションでは、おそらくデータを入力する前にフレームとそのコンポーネントを構築したいと思うでしょう。

どのコンストラクターも非 MVCとは見なしません。その点でさらに重要なことは、データ、UI、およびロジックを担当するコードをできるだけ分離し、依存しないようにすることです。これにより、コードの単体テストが改善され、柔軟性と再利用性が向上します。

于 2010-03-11T10:18:21.383 に答える