當前位置:成語大全網 - 英語詞典 - java的JTree的使用方法,

java的JTree的使用方法,

JTree組件被用來以樹的形式顯示數據,壹層套壹層,看起來清晰明了,使用戶很方便地就了解到各個節點之間的層次關系,可以很容易地找到相關的數據。

例如 Windows 系統的文件管理器,它就是壹個典型的樹層次結構。

JTree的構造函數:

·JTree() 建立壹棵默認的樹。

·JTree(Hashtable data) 利用Hashtable建立樹。

·JTree(Object[] data) 利用數組建立樹。

·JTree(TreeModel model) 利用TreeModel建立樹。

·JTree(TreeNode root) 建立以root為根的樹。

·JTree(TreeNode root,Boolean children) 建立以 root 為根的樹,並設定是否允許有子節點。

·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)?{

//?創建沒有父節點和子節點、但允許有子節點的樹節點,並使用指定的用戶對象對它進行初始化。

//?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("總經理")));

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,節點的顯示文本就是toString

public?String?toString()?{

return?name;

}

}