b. 使用 TreeNode 的构造函数 public TreeNode() 构建一个树的根节点对象
TreeNode rootTreeNode = new TreeNode(); rootTreeNode.setText("root node"); |
c. 使用 TreeNode 的 public void setRootNode(Node node) 方法将这个 Node 对象作为根节点加入到 Tree 中。此时即可得到一个包含了一个根节点的树状 UI 组件。
treePanel.setRootNode(rootTreeNode); |
d. 为了得到更多的树节点,可以使用构造函数 public TreeNode() 生成更多的节点对象,并依次使用 TreeNode 对象的 appendChild(Node child) 方法将他们添加到根节点或其他字节点中即可。
TreeNode generation1childNodeA=new TreeNode("generation 1 child a"); rootTreeNode.appendChild(generation1childNodeA); TreeNode generation2childNodeA=new TreeNode("generation 2 child a"); generation1childNodeA.appendChild(generation2childNodeA); TreeNode generation2childNodeB=new TreeNode("generation 2 child b"); generation1childNodeA.appendChild(generation2childNodeB); TreeNode generation3childNodeA=new TreeNode("generation 3 child a"); generation2childNodeB.appendChild(generation3childNodeA); TreeNode generation1childNodeB=new TreeNode("generation 1 child b"); rootTreeNode.appendChild(generation1childNodeB); |
e. 调用 expand 方法展开节点。 TreeNode 对象的 expand() 方法是展开 TreeNode 的子节点。 TreePanel 的 expandAll() 方法是展开所以节点。
rootTreeNode.expand(); treePanel.expandAll(); |
综合以上示例代码,将产生一棵如图 8 的树:
图 8. 构建树

(2) Tree 的事件监听与处理
GWT-EXT 中提供了一套丰富,简便且易于使用的针对树控件的事件监听与处理机制和简便的 API 。这些 API 存在于包 com.gwtext.client.widgets.tree.event 中。 GWT-EXT 还定义了数个用于事件监听的接口,并且提供了实现了这些接口的类供用户使用,以下几个是编程中会经常用到的事件监听类:
com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter:监听所有 TreePanel 中对象的事件。
com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter:监听树中各个节点对象的事件。
com.gwtext.client.widgets.tree.event.AsyncTreeNodeListenerAdapter:监听树异步节点对象的事件。
com.gwtext.client.widgets.tree.event.TreeLoaderListenerAdapter:监听树的数据加载事件。
在事件监听类中定义了以下各种 UI 事件监听方法,当相关联的 UI 事件发生时,监听器方法中定义的程序逻辑会自动被 GWT-EXT 系统回调执行。
当在当前 Node 上添加了新的子节点时,onAppend 方法将自动被系统调用。
public void onAppend(Tree tree, TreeNode parent, TreeNode node, int index) |
当删除选定节点时 onRemove 方法自动被系统调用。
public void onRemove(Tree tree, TreeNode parent, TreeNode node): |
在选定的节点上单击鼠标左键时,onClick 方法将自动被系统调用。
public void onClick(TreeNode node, EventObject e): |
在选定的父节点上点击子树图标以收缩该节点的所有子节点的子树时,onCollapseNode 方法将自动被系统调用。
public void onCollapseNode(TreeNode node): |