2011-06-27 17 views
0

これについて多くのトピックを読んでいますが、まだ問題があります。 NBからJavaデスクトッププロジェクトを使用しています。私はパレットからツリーを作成し、ボタンをクリックするたびに新しいツリーを作成してリフレッシュしたいと思っています。だから、イベントアクションを実行して、新しいjTreeをDefaultMutableTreeNodeのいくつかを追加してウィンドウに表示させたいところで実行します。何か案は?jTreeを新規作成した後にコンポーネントをリフレッシュする

おそらく、コンテンツを変更するためにJtreeをどのように作成する必要がありますか?私は今このようなものを作っています:initComponentsの jTree1 =新しいJTree(nodeF); ここで、nodeFはinitComponents より前に初期化されたmyフィールド(DefaultMutableTreeNode)であり、このノード要素を変更して別のノードを追加および削除したいとします。

ツリー((DefaultTreeModel)jTree1.getModel())をリフレッシュすることができます。私は..私はいくつかの愚かな間違いを作っているように私は落ちたnodeF

の新しいインスタンスを作成することができませんよGUI権利を作成する方法を知らない...

答えて

5

まずアイデア、離れてはNetbeansから取得します。 GUIエディタを使用すると、Swingの重要な部分を習得することができなくなり、デバッグやカスタマイズが面倒なコードが生成されます。

2番目のアイデアは、既存のツリーをリフレッシュし、ルートを設定して現在のコンテンツを削除するだけで済むように思えます。そうすれば、毎回新しいツリーを作成する必要はありません。

+0

新しいノードを追加する前に、すべてのnodeF子を削除してこれを修正しました。それでも良い方法があると思います。 –

+0

匿名up-voter(Swing)+1 – mKorbel

2

実際にツリー構造が変更されていますか?あるいは、ツリー内のノードを展開/折りたたんでいるだけですか?私の推測は後者です。

おそらく、データモデルオブジェクトを変更してTreeNodeを実装する必要があります。 JTreeは、必要に応じてTreeNodeオブジェクトを照会して、子ノード、子ノードなどを特定します。

組み込みツリーコントロールを使用せずにツリー内のノードを展開/縮小するには、JTree、例えばexpandPathまたはexpandRow

関連する問題