2013-05-24 1 views
0

여기 내 코드가 jtree의 현재 시스템에있는 모든 드라이브를 표시 할 수 없습니다. 반환되는 모든 것은 임의의 Java 파일이며, 초보자이며 많은 것에 대해 알지 못합니다. 이를 수행하는 방법,JTree에서 시스템의 모든 드라이브 표시

import java.awt.GridLayout; 
import java.io.File; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTree; 
import javax.swing.tree.DefaultMutableTreeNode; 
import javax.swing.tree.TreeSelectionModel; 


public class JTreeLits extends JPanel 
{ 
JTree tree; 
public JTreeLits() 
{ 
     super(new GridLayout(1,0)); 
     DefaultMutableTreeNode rooter = new DefaultMutableTreeNode("FileSystem"); 
     DefaultMutableTreeNode parent; 
     File [] roots = File.listRoots(); 
     parent = new DefaultMutableTreeNode(roots); 
     rooter.add(parent); 

     tree = new JTree(rooter); 
     tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
     add(tree); 
} 
private static void createAndShowGUI() 
{ 
     JFrame frame = new JFrame("TreeDemo"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new JTreeLits()); 
     frame.pack(); 
     frame.setVisible(true); 
     frame.setSize(250,400); 
} 
public static void main(String[] args) 
{ 
    createAndShowGUI(); 
} 
} 

답변

2

1FileSystemView.getRoots()에 .. 도움을 기다리고있는이 시스템의

반환 모든 루트 파티션을. 예를 들어, Windows에서는이 폴더가 "Desktop"폴더이고 DOS에서는 A : Z : 드라이브가됩니다. File Browser GUI에서 보는 바와 같이

  1. .

+0

이 변경 완료하고 스레드 예외를 도시 본 "메인"java.lang.NullPointerException이 Arrears.NewJTreeList.main에서 \t (NewJTreeList.java:36) 라인 36은 입니다. File [] roots = fileSystemView.getRoots(); –

+0

어쩌면 앱에 이러한 정보를 얻을 수있는 권한이 없을 수도 있습니다. – KernelPanic

+1

* "예외를 표시합니다"* 1. 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2. 항상 오류 및 예외 출력을 복사/붙여 넣기하십시오. 3. HTML, XML과 같은 코드, 입출력 및 구조화 된 문서에 코드 형식을 사용하십시오. 이를 위해 샘플을 선택하고 메시지/편집 양식 위에있는 '{}'버튼을 클릭하십시오. –

관련 문제