如何在java swing里使用JTree,就像下面這樣的樹
手工創(chuàng)建:
首先,你需要?jiǎng)?chuàng)建一個(gè)JScrollPane,然后創(chuàng)建一個(gè)JTree,再然后創(chuàng)建節(jié)點(diǎn)TreeNode
JScrollPane是盛放JTree的容器,JTree是一個(gè)結(jié)構(gòu)相當(dāng)于一個(gè)房子的鋼筋框架,真正的內(nèi)容是節(jié)點(diǎn)node。學(xué)過數(shù)據(jù)結(jié)構(gòu)里的樹的話可能會(huì)好理解一點(diǎn)。寫代碼的時(shí)候,三個(gè)過程的創(chuàng)建順序不一定,也可以倒著過來寫。
比如,創(chuàng)建一個(gè)簡(jiǎn)單的初始化 樹的方法
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();//創(chuàng)建窗體
Container c=jframe.getContentPane();//創(chuàng)建容器
JScrollPane scrollPane=new JScrollPane();//創(chuàng)建一個(gè)用于樹的容器
DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");//創(chuàng)建樹根節(jié)點(diǎn)
DefaultMutableTreeNode file=new DefaultMutableTreeNode("file1");//創(chuàng)建一個(gè)文件節(jié)點(diǎn)
root.add(file);//將文件節(jié)點(diǎn)添加到根節(jié)點(diǎn)下
JTree tree=new JTree(root);//以根節(jié)點(diǎn)為參數(shù)創(chuàng)建一個(gè)樹對(duì)象
scrollPane.setViewportView(tree);//將樹添加到scrollPane里面,并顯示
c.add(scrollPane);//將scrollPane添加到窗體里
jframe.pack();
jframe.setVisible(true);
jframe.addWindowListener(new WindowAdapter(){//這段代碼用于默認(rèn)關(guān)閉
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new NewTree();
}
}
結(jié)果是這樣的:注意關(guān)鍵的是斜體的代碼,其他的都是swing的東西
那么如何在netbeans里,創(chuàng)建和使用樹呢?好多人看到的都是下面這樣的:
這是為什么呢?我找過代碼結(jié)果沒找到,后來發(fā)現(xiàn)這都是假的,你還是可以通過該改變代碼來創(chuàng)建和使用你的樹:改什么?改TreeModel.
到源代碼界面下創(chuàng)建一個(gè)初始化樹的方法:
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);
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);
tree.setModel(treeModel);
}
注意黑體代碼,這樣在窗體的構(gòu)造方法中調(diào)用treeInitialize()方法,你的樹就被改變了,tree是你用netbeans生成樹對(duì)象的引用或者名字,一般會(huì)是jTree1。
接下來就是對(duì)樹的操作了,限于篇幅不能再講了