tree 英 [tri:] 美 [tri] :n. 树木料树状图宗谱;vt. 把?赶上树使处于困境把鞋型插入(鞋内)
短语
family tree 家族树 家谱 家庭树 族谱
Suffix Tree [计] 后缀树 后缀树实现 字尾树
tree hyrax 树蹄兔属 树蹄兔
Leftist tree 左偏树 左倾树
Tree sitting 树坐 国际常见的树坐
Tree spiking 树钉
Metric tree 度量树
Fenwick tree 树状数组
camphor tree [林] 樟树 [林] 樟脑树 香樟树 香樟
扩展资料
双语例句
1、You are absolutely correct. The leaves are from a bay tree
你说得很对,这是月桂树的叶子。
2、The peach tree is wormy.
桃树长虫了。
3、He dug a hole in our yard on Edgerton Avenue to plant a maple tree when I was born.
我出生的时候,他在埃杰顿大街我们家的园圃里挖了个坑,种了棵枫树。
4、China has the world's most ancient tree species--metasequoia.
中国有世界最古老的树种--水杉。
5、A vandal with a chainsaw cut down a tree.
一个故意破坏公物的人用链锯伐倒了一棵树。
树节点类:
package cn.com.tree
public class Node {
private Integer id
private Integer parentId
private String name
private String link
public Integer getId() {
return id
}
public void setId(Integer id) {
this.id = id
}
public Integer getParentId() {
return parentId
}
public void setParentId(Integer parentId) {
this.parentId = parentId
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public String getLink() {
return link
}
public void setLink(String link) {
this.link = link
}
}
输出树形菜单类:
package cn.com.tree
import java.util.ArrayList
import java.util.List
public class Tree {
private StringBuffer html = new StringBuffer()
private List<Node> nodes
public Tree(List<Node> nodes){
this.nodes = nodes
}
public String buildTree(){
html.append("<ul>")
for (Node node : nodes) {
Integer id = node.getId()
if (node.getParentId() == null) {
html.append("\r\n<li id='" + id + "'>" + node.getName()+ "</li>")
build(node)
}
}
html.append("\r\n</ul>")
return html.toString()
}
private void build(Node node){
List<Node> children = getChildren(node)
if (!children.isEmpty()) {
html.append("\r\n<ul>")
for (Node child : children) {
Integer id = child.getId()
html.append("\r\n<li id='" + id + "'>" + child.getName()+ "</li>")
build(child)
}
html.append("\r\n</ul>")
}
}
private List<Node> getChildren(Node node){
List<Node> children = new ArrayList<Node>()
Integer id = node.getId()
for (Node child : nodes) {
if (id.equals(child.getParentId())) {
children.add(child)
}
}
return children
}
}
测试类:
package zzj.test
import java.util.ArrayList
import java.util.List
import cn.com.tree.Node
import cn.com.tree.Tree
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
List<Node> nodes = new ArrayList<Node>()
Node node1 = new Node()
node1.setId(1)
node1.setName("node1")
node1.setParentId(null)
node1.setLink(null)
nodes.add(node1)
Node node11 = new Node()
node11.setId(11)
node11.setName("node11")
node11.setParentId(1)
node11.setLink(null)
nodes.add(node11)
Node node111 = new Node()
node111.setId(111)
node111.setName("node111")
node111.setParentId(11)
node111.setLink(null)
nodes.add(node111)
Node node12 = new Node()
node12.setId(12)
node12.setName("node12")
node12.setParentId(1)
node12.setLink(null)
nodes.add(node12)
Node node2 = new Node()
node2.setId(2)
node2.setName("node2")
node2.setParentId(null)
node2.setLink(null)
nodes.add(node2)
Node node21 = new Node()
node21.setId(21)
node21.setName("node21")
node21.setParentId(2)
node21.setLink(null)
nodes.add(node21)
Node node3 = new Node()
node3.setId(3)
node3.setName("node3")
node3.setParentId(null)
node3.setLink(null)
nodes.add(node3)
Tree tree = new Tree(nodes)
System.out.println(tree.buildTree())
}
}
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
}
}