如何在java swing里使用JTree,就像下面這樣的樹
手工創建:
首先,你需要創建一個JScrollPane,然后創建一個JTree,再然后創建節點TreeNode
JScrollPane是盛放JTree的容器,JTree是一個結構相當于一個房子的鋼筋框架,真正的內容是節點node。學過數據結構里的樹的話可能會好理解一點。寫代碼的時候,三個過程的創建順序不一定,也可以倒著過來寫。
比如,創建一個簡單的初始化 樹的方法
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JTree;
import javax.swing.tree.*;
public class NewTree {
public
NewTree() {
JFrame jframe=new JFrame();//創建窗體
Container c=jframe.getContentPane();//創建容器
JScrollPane scrollPane=new
JScrollPane();//創建一個用于樹的容器
DefaultMutableTreeNode root=new
DefaultMutableTreeNode("root");//創建樹根節點
DefaultMutableTreeNode file=new
DefaultMutableTreeNode("file1");//創建一個文件節點
root.add(file);//將文件節點添加到根節點下
JTree tree=new JTree(root);//以根節點為參數創建一個樹對象
scrollPane.setViewportView(tree);//將樹添加到scrollPane里面,并顯示
c.add(scrollPane);//將scrollPane添加到窗體里
jframe.pack();
jframe.setVisible(true);
jframe.addWindowListener(new
WindowAdapter(){//這段代碼用于默認關閉
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public
static void main(String[] args){
new NewTree();
}
}
結果是這樣的:注意關鍵的是斜體的代碼,其他的都是swing的東西

那么如何在netbeans里,創建和使用樹呢?好多人看到的都是下面這樣的:

這是為什么呢?我找過代碼結果沒找到,后來發現這都是假的,你還是可以通過該改變代碼來創建和使用你的樹:改什么?改TreeModel.
到源代碼界面下創建一個初始化樹的方法:
public void treeInitialize(){
JScrollPane
scrollPane=new JScrollPane();
DefaultMutableTreeNode
root=new DefaultMutableTreeNode("root");
DefaultMutableTreeNode
file=new DefaultMutableTreeNode("file1");
root.add(file);
JTree
tree=new JTree(root);
TreeModel
treeModel = new DefaultTreeModel(root);
tree.setModel(treeModel);
}
注意黑體代碼,這樣在窗體的構造方法中調用treeInitialize()方法,你的樹就被改變了,tree是你用netbeans生成樹對象的引用或者名字,一般會是jTree1。
接下來就是對樹的操作了,限于篇幅不能再講了
posted on 2006-12-04 13:11
wqwqwqwqwq 閱讀(3872)
評論(2) 編輯 收藏 所屬分類:
Simple Java