2009-03-12 8 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()])); 
    } 
관련 문제