2011-10-20 5 views
2

Netbeans에서 작은 데스크톱 애플리케이션을 개발 중입니다. 내가 JTree을 내 JFrame에 드래그 앤 드롭하면 이제이 노드의 계층 구조를이 JTree에 동적으로 채우고 싶습니다. 이것을 위해 나는 DefaultMutableTreeNode 객체를 반환하는 방법을 사용합니다. 지금은 내가 드래그 JTree이 객체를 할당하고 다음DefaultMutableTreeNode를 JTree에 할당합니다.

답변

5

드롭 어떻게 예는 당신이

package commondemo; 
/** 
* 
* @author hemant 
*/ 
import java.awt.*; 
import javax.swing.*; 
import javax.swing.tree.*; 

public class SimpleTree extends JFrame { 
public static void main(String[] args) { 
new SimpleTree(); 
} 

public SimpleTree() { 
super("Creating a Simple JTree"); 


Container content = getContentPane(); 
Object[] hierarchy = 
    { "javax.swing", 
    "javax.swing.border", 
    "javax.swing.colorchooser", 
    "javax.swing.event", 
    "javax.swing.filechooser", 
    new Object[] { "javax.swing.plaf", 
        "javax.swing.plaf.basic", 
        "javax.swing.plaf.metal", 
        "javax.swing.plaf.multi" }, 
    "javax.swing.table", 
    new Object[] { "javax.swing.text", 
        new Object[] { "javax.swing.text.html", 
            "javax.swing.text.html.parser" }, 
        "javax.swing.text.rtf" }, 
    "javax.swing.tree", 
    "javax.swing.undo" }; 
DefaultMutableTreeNode root = processHierarchy(hierarchy); 
JTree tree = new JTree(root); 
content.add(new JScrollPane(tree), BorderLayout.CENTER); 
setSize(275, 300); 
setVisible(true); 
} 

/** Small routine that will make node out of the first entry 
* in the array, then make nodes out of subsequent entries 
* and make them child nodes of the first one. The process is 
* repeated recursively for entries that are arrays. 
*/ 

private DefaultMutableTreeNode processHierarchy(Object[] hierarchy) { 
DefaultMutableTreeNode node = 
    new DefaultMutableTreeNode(hierarchy[0]); 
DefaultMutableTreeNode child; 
for(int i=1; i<hierarchy.length; i++) { 
    Object nodeSpecifier = hierarchy[i]; 
    if (nodeSpecifier instanceof Object[]) // Ie node with children 
    child = processHierarchy((Object[])nodeSpecifier); 
    else 
    child = new DefaultMutableTreeNode(nodeSpecifier); // Ie Leaf 
    node.add(child); 
} 
return(node); 
} 
} 
+0

이미이 두 라인을 시도 할 데 도움이 될 것입니다하지만 주목할 않습니다 내 케이스. 또한 예상대로 값이 포함 된 루트 개체를 확인합니다. DefaultMutableTreeNode root = processHierarchy (hierarchy); JTree 트리 = 새 JTree (루트); 다른 제안 사항이 있으십니까? – Jame

+0

코드 스 니펫을 제공해 주시겠습니까? –

3
+0

관련 코드를 게시하여이 대답을 향상시킬 수 있습니다. –

관련 문제