2014-09-28 35 views
0

我使用this教程製作JTree。 現在我想調用這個類並把它放在一個ScrollPane中。調用JTree並放入滾動條

但是當我使用這個

TreeMainMenu tree = new TreeMainMenu(); 
    JScrollPane MainMenu = new JScrollPane(tree); 

它只能得到默認的樹。我需要了解如何從另一個類中調用組件來使用它們。

的JTree:

import javax.swing.JTree; 
import javax.swing.tree.DefaultMutableTreeNode; 
import javax.swing.tree.TreeSelectionModel; 

public class TreeMainMenu extends JTree { 


private DefaultMutableTreeNode top = new DefaultMutableTreeNode("TOP"); 


public TreeMainMenu() { 

    APNode(); 
    JTree tree = new JTree(top); 



tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
} 


private void APNode() { 
    DefaultMutableTreeNode category = null; 
    DefaultMutableTreeNode node1 = null; 
    DefaultMutableTreeNode node2 = null; 
    DefaultMutableTreeNode node3 = null; 

    category = new DefaultMutableTreeNode("top"); 
    top.add(category); 

    node1 = new DefaultMutableTreeNode(new Node("top-1")); 
    category.add(node1); 
    node2 = new DefaultMutableTreeNode(new Node("node1")); 
    node1.add(node2); 
    node2 = new DefaultMutableTreeNode(new Node("node2")); 
    node1.add(node2); 
    node2 = new DefaultMutableTreeNode(new Node("node3")); 
    node1.add(node2); 
    node2 = new DefaultMutableTreeNode(new Node("node4")); 
    node1.add(node2); 

} 

private class Node { 
    public String nodeName; 

    public Node(String node) { 
     nodeName = node; 
    } 

    public String toString() { 
     return nodeName; 
    } 

} 
} 

回答

0

TreeMainMenu類是已經JTree因此,你不必創建一個新的JTree tree = new JTree(top);

您必須藉由節點一個新的樹,但TreeMainMenu實例具有默認的節點。所以,你可以使用TreeMainMenu extends JPanel,並添加你的樹(即您在構造函數創建)到面板或你需要使用的TreeMainMenu實例作爲JTree和你的構造可以有如下:

public TreeMainMenu() { 

    APNode(); 
    setModel(new DefaultTreeModel(top)); 
    getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
}