2 回答

TA貢獻1780條經(jīng)驗 獲得超5個贊
package com.baiduwork;
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JFrame;
//定義個Jtree繼承框架。
public class Jtree extends JFrame {
private DefaultMutableTreeNode root, red, green, blue;
private JTree jtree1;
private JPanel jpanel1;
private JFrame frame;
Jtree() {
super();
initilize();
}
//初始化。
public void initilize() {
frame = new JFrame("Jtree");
root = new DefaultMutableTreeNode("Color");
red = new DefaultMutableTreeNode("red");
blue = new DefaultMutableTreeNode("green");
green = new DefaultMutableTreeNode("green");
root.add(red);
root.add(blue);
root.add(green);
jtree1 = new JTree(root);
jpanel1 = new JPanel();
JSplitPane jsplitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
jtree1, jpanel1);
jsplitpane.setOneTouchExpandable(true);
jsplitpane.setMinimumSize(new Dimension(100, 50));
frame.getContentPane().add(jsplitpane);
frame.setSize(600, 500);
frame.setLocation(50, 50);
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Jtree();
}
}
例子。

TA貢獻1966條經(jīng)驗 獲得超4個贊
JTree組件被用來以樹的形式顯示數(shù)據(jù),一層套一層,看起來清晰明了,使用戶很方便地就了解到各個節(jié)點之間的層次關(guān)系,可以很容易地找到相關(guān)的數(shù)據(jù)。
例如 Windows 系統(tǒng)的文件管理器,它就是一個典型的樹層次結(jié)構(gòu)。
JTree的構(gòu)造函數(shù):
·JTree() 建立一棵默認的樹。
·JTree(Hashtable data) 利用Hashtable建立樹。
·JTree(Object[] data) 利用數(shù)組建立樹。
·JTree(TreeModel model) 利用TreeModel建立樹。
·JTree(TreeNode root) 建立以root為根的樹。
·JTree(TreeNode root,Boolean children) 建立以 root 為根的樹,并設(shè)定是否允許有子節(jié)點。
·JTree(Vector value) 利用Vector建立樹。
使用一個JTree可以簡單地像下面這樣表示:
import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; public class TreeDemo { public static void main(String[] args) { // 創(chuàng)建沒有父節(jié)點和子節(jié)點、但允許有子節(jié)點的樹節(jié)點,并使用指定的用戶對象對它進行初始化。 // public DefaultMutableTreeNode(Object userObject) DefaultMutableTreeNode node1 = new DefaultMutableTreeNode( "軟件部" ); node1.add( new DefaultMutableTreeNode( new User( "小花" ))); node1.add( new DefaultMutableTreeNode( new User( "小虎" ))); node1.add( new DefaultMutableTreeNode( new User( "小龍" ))); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode( "銷售部" ); node2.add( new DefaultMutableTreeNode( new User( "小葉" ))); node2.add( new DefaultMutableTreeNode( new User( "小雯" ))); node2.add( new DefaultMutableTreeNode( new User( "小夏" ))); DefaultMutableTreeNode top = new DefaultMutableTreeNode( "職員管理" ); top.add( new DefaultMutableTreeNode( new User( "總經(jīng)理" ))); top.add(node1); top.add(node2); final JTree tree = new JTree(top); JFrame f = new JFrame( "JTreeDemo" ); f.add(tree); f.setSize( 300 , 300 ); f.setVisible( true ); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 添加選擇事件 tree.addTreeSelectionListener( new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree .getLastSelectedPathComponent(); if (node == null ) return ; Object object = node.getUserObject(); if (node.isLeaf()) { User user = (User) object; System.out.println( "你選擇了:" + user.toString()); } } }); } } class User { private String name; public User(String n) { name = n; } // 重點在toString,節(jié)點的顯示文本就是toString public String toString() { return name; } } |
添加回答
舉報