0

私は自分が書いているゲームデータベースプログラムのスキルで満たすJTreeを持っています。

いくつかのカテゴリとサブカテゴリ(実際のスキル)があり、その下のレベルのスキル(場合によっては)があります。現在、これを1つのスキルクラス、内部のいくつかのオプション、いくつかの列挙型、およびスキルがカテゴリ(isCategoryと呼ばれる)であるかどうかを確認するメソッドでエミュレートしています。注意すべき他の2つのこと:

  1. スキルの種類が異なれば、動作も異なります。
    一度購入するものもあれば、数回購入するものもあり、選択できるオプションがあるものもあります。
  2. カテゴリが異なれば、スキルも異なります。
    たとえば、武器スキルのカテゴリにはさまざまな種類の武器がありますが、鎧スキルは別のセクションにあります。

セルレンダラーを介してComboBoxをツリー内の各ノードにアタッチする非常に良い例を見てきました。これが私が見つけた例です。

上記のコードは理解できますが、コンボボックスをツリーではなくノードにアタッチする方法がわかりません。「ツリーの使用方法」を読み、実行して、ツリーのデモのいくつかのコードを確認しました。基本的なツリーを作成することはできますが、チュートリアルは少しわかりにくく、進め方を自分で理解するのに十分な詳細が不足しています。リーフノードのみをチェックボックスとしてレンダリングする別の例を見つけました。これははるかに複雑です。

明らかに、私はこの2つを組み合わせたいと思います。さまざまなカテゴリにさまざまなスキルを持たせることができ、さまざまなスキルにさまざまなレベルの習熟度を持たせることができます。ただし、そうすることを考えることができる唯一の方法は、タイプごとに異なるJComboBoxModelを使用することですが、これを行う方法がわからず、方法もわかりません。チェックボックスの例を編集してComboBoxを使用しようとしましたが、私の人生ではそれを理解できません。

私はJavaに不慣れで、何をすべきかを理解するのに苦労しているので、誰かがこれを実行するためのアプローチについてのヒントを教えてもらえますか?

4

2 に答える 2

3

TreeCellRenderer同様に実装する必要がありTreeCellEditorます。JComboBox両方とも異なるモデルで戻る必要があります。どのモデルを選択するかは、値パラメーター(実際にはツリーノード)に応じてgetTreeCellEditorComponent/で決定する必要があります。getTreeCellRenderingComponent

于 2012-08-03T11:25:42.513 に答える
1

これは始めるのに良い場所でしょうか?

概念的には、そうです。両方とも、フライウェイトパターンJTableJTree使用して、セル/ノードをレンダリングおよび編集します。

  • このでは、基本的なを引用していTreeCellRendererます。
  • このTreeCellEditorは、デフォルトのレンダラーを使用した簡単な例を示しています。
  • このは、とOutlineの両方の機能を組み込んだビューを示しています。JTableJTree

画像

于 2012-08-03T19:33:28.897 に答える