2009-03-12 7 views
1

ファイルをハイライトしたいJTreeを作成しました。ファイルを含むディレクトリが見えない場合は、展開する必要があります。JTreeでファイルをハイライトできません

例: ルートノード-D:/ Company/abb/srcを使用してJTreeを作成しました。 ハイライトしたいファイルは-D:/Company/abb/src/bin/help.txt

ファイルhelp.txtを強調表示するロジックを教えてください。

ありがとうございます。

答えて

0

JTreeです。 makeVisible()が必要です。

+0

JTreeのモデルによって異なります。 TreePathを構築するには、パスを構成する単一のコンポーネントを指定します。ドキュメントを確認してください。 – Bombe

+0

私は、TreePathを構築するための例を教えてくれますか? 私はDefaultTreeModelを使用しています。 それは私をたくさん助けます。 – user77130

+0

AFAIKでは、この種の機能用に独自のモデルを作成する必要があります。 –

1

ファイルシステムを表すJTreeがあります。特定のディレクトリを選択させるためのコードです(ツリーが展開され、必要に応じてビューがスクロールされます)。

JTree fsTree; 

void setSelectedPath(String pth) { 
    TreePath      jtp=buildTreePath(new File(pth)); 

    fsTree.setSelectionPath(jtp); 
    if(fsTree.getSelectionPath()==null) { fsTree.setSelectionRow(0);  } 
    else        { fsTree.scrollPathToVisible(jtp); } 
    } 

public TreePath buildTreePath(File dir) { 
    ArrayList       elms=new ArrayList(); 

    do { elms.add(0,dir); } while((dir=dir.getParentFile())!=null); 
    elms.add(0,root); 
    return new TreePath(elms.toArray(new File[elms.size()])); 
    } 
関連する問題