2012-03-04 11 views
4

私はDefaultTreeModelを使ってJtreeを持っていますが、個々のノードにはさまざまな文字列フィールドを含むUserObjectが含まれています。Java:TreeModelのUserObjectフィールドからの再帰的検索?

フィールドの1つに一致するUserObjectを持つDefaultMutableTreeNodeを見つけてプログラムでそのノードを選択するまで、再帰的トラバーサルを実行してノードを探して選択したいとします。

DefaultMutableTreeNodeのUserObjectフィールドで検索する例はありますか?

答えて

10

DefaultMutableTreeNodeはdepthFirstEnumeration()breadthFirstEnumeration()です。あなたが望むものを呼び出し、UserObjectのノードが見つかるまで列挙を繰り返します。

DefaultMutableTreeNode theNode = null; 
for (Enumeration e = root.depthFirstEnumeration(); e.hasMoreElements() && theNode == null;) { 
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement(); 
    if (whatIWantIs(node.getUserObject)) { 
     theNode = node; 
    } 
} 
+0

これは私を大いに助けました!そしてうまくいった! myTreeModel.getRoot()のようにsomehtingするべきrootの定義を追加してください。 – behzad

関連する問題