2013-07-20 3 views
0

for 루프의 구문에 어려움이있는 경우 배열에서 데이터를 읽어서 JTree에 추가합니다. 섹션을 추가JTree 용 For 루프 배열 구문

public void init() 
{ final String section1 = "JAVA"; 
    String[] sections = new String[]{ "Tutorial6", "Tutorial5", "Tutorial4", "Tutorial3", "Tutorial2", "Tutorial1" }; 

String contents[][] = { 
     {"content1a", "content1b"}, 
     {"content2a", "content2b"}, 
     {"content3a", "content3b"} 
    }; 

    title = new DefaultMutableTreeNode(section1); 

    for (int i=0; i<sections.length; i++) 
    { selection = new DefaultMutableTreeNode((sections[i])); 

     selection.insert(new DefaultMutableTreeNode((contents[i])),0); 



     //title.insert(selection,0); 
    } 

괜찮 작동하지만, 그 부분에 노드를 추가하는 것은 문제입니다. for 루프를 파싱 할 때 컨텐트 이름을 가진 노드가 관련 섹션에 추가되도록 for 루프를 작동시키는 방법은 무엇입니까 ??

이 작동하지 않는 코드 :

selection.insert(new DefaultMutableTreeNode((contents[i])),0); 

감사합니다!

+0

이 동일한 주제에 이전 질문에서 어떻게 다른지 명확히하십시오 : [JTree에 - A-For 루프에 노드를 추가하는 방법?] (http://stackoverflow.com/questions/17752099/jtree-how 노드를 루프에 추가) – trashgod

답변

1

TreeNode 만들기는 실제로 하나의 단일 노드입니다. 따라서 배열을 노드 생성자에 전달하면 전체 노드 목록이 만들어지지 않습니다. 원하는 것을 얻으려면 중첩 된 for 루프를 추가하십시오.

String contents[][] = 
{ 
    {"content1a", "content1b"}, 
    {"content2a", "content2b"}, 
    {"content3a", "content3b"} 
}; 

title = new DefaultMutableTreeNode(section1); 

for (int i=0; i < sections.length; i++) 
{ 
    selection = new DefaultMutableTreeNode(sections[i]); 
    for (int k = 0; k < contents[i].length; ++k) 
    { 
     selection.add(new DefaultMutableTreeNode(contents[i][k])); 
    } 
    title.add(selection); 
} 
+0

네, 거의. 귀하의 실수는 올바른 내용 [i] [j] 대신 내용 [i]입니다. –

+0

많은 Martijn, 그것을 지금 시도 할 것이다 !! – user2521443

+0

Array0utOfBoundsException 있습니다 :/ – user2521443