jtree和mysql_有关树JTree的类和接口JTree

本文介绍了如何使用DefaultMutableTreeNode构建JTree,包括创建树节点、设置节点关系以及监听树的选择变化。同时,展示了如何美化JTree,通过设置不同状态的节点图标。
摘要由CSDN通过智能技术生成

有关树JTree的类和接口JTree                           显示树的核心基本类。

TreeModel                  定义了树的数据模型接口

DefaultTreeModel      默认的树模型接口实现类

TreeModelListener     树模型的事件监听器

TreePath                      树路径。一个路径就是一个对象数组,对应于树模型中从根节点到选定节点上的所有节点集合。数组的第一个元素是根节点,按树的层次关系依次在数组中给出中间节点,最后一个元素是选定的节点。

MutableTreeNode      树节点接口。对应树中的节点。树节点接口定义了与父子节点有关的方法。因此,利用树节点可以遍历整棵树。

DedaultMutableTreeNode 默认的树节点的实现类。

TreeSelectionModel 定义了在树上的选择节点的数据模型接口。树选择模型决定了选择节点的策略以及被选择节点的信息。

TreeSelectionModelListener 树选择模型事件的监听器。

代码实例:构建一棵树

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Java");

DefaultMutableTreeNode j2seNode=new DefaultMutableTreeNode("J2SE(JavaSE)");

DefaultMutableTreeNode swingNode=new DefaultMutableTreeNode("Swing");

DefaultMutableTreeNode socketNode=new DefaultMutableTreeNode("Socket");

DefaultMutableTreeNode threadNode=new DefaultMutableTreeNode("Thread");

j2seNode.add(swingNode);

j2seNode.add(socketNode);

j2seNode.add(threadNode);

DefaultMutableTreeNode j2eeNode=new DefaultMutableTreeNode("J2EE(JavaEE)");

DefaultMutableTreeNode jspservletNode=new DefaultMutableTreeNode("Jsp/Servlet");

DefaultMutableTreeNode jdbcNode=new DefaultMutableTreeNode("JDBC");

DefaultMutableTreeNode javaMailNode=new DefaultMutableTreeNode("Java Mail");

j2eeNode.add(jspservletNode);

j2eeNode.add(jdbcNode);

j2eeNode.add(javaMailNode);

root.add(j2seNode);

root.add(j2eeNode);

tree = new JTree(root);

createtrree1.jpg

相关语句解释

// 创建一个树节点,文字为J2SE(JavaSE)

DefaultMutableTreeNode j2seNode=new DefaultMutableTreeNode("J2SE(JavaSE)");

// 创建一个文字为“Swing”的节点,添加在节点j2seNode下

DefaultMutableTreeNode swingNode=new DefaultMutableTreeNode("Swing");

j2seNode.add(swingNode);

// 创建一个文字为Java的节点作为根节点,然后以此根节点构建一棵树。j2seNode,j2eeNode挂在root 下

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Java");

.......

root.add(j2seNode);

root.add(j2eeNode);

tree = new JTree(root);

注意: JTree和JTextArea,JTable一样,也需要放在一个JScrollPane中。

给树控件添加监听

tree.addTreeSelectionListener(new TreeSelectionListener() {

public void valueChanged(TreeSelectionEvent evt) {

//  取得选择状态变化的所有路径

TreePath[] paths = evt.getPaths();

for (int i=0; i

// 如果处于选择状态

if (evt.isAddedPath(i)) {

// 将路径转化为节点数组

Object[] nodes=paths[i].getPath();

// 得到最后一个节点,即选择的节点

DefaultMutableTreeNode node=(DefaultMutableTreeNode)nodes[nodes.length-1];

// 输出节点名

System.out.println(node.toString());

}

}

}

});

额外的一点美化工作:渲染节点

// 设定叶节点图标

Icon leafIcon = new ImageIcon(TreePanel.class.getResource("/leaf.gif"));

// 设定关闭状态节点图标

Icon closedIcon = new ImageIcon(TreePanel.class.getResource("/close.gif"));

// 设定打开状态节点图标

Icon openIcon = new ImageIcon(TreePanel.class.getResource("/open.gif"));

// 取得树的渲染器

DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();

renderer.setLeafIcon(leafIcon);// 设定叶节点图标

renderer.setClosedIcon(closedIcon);// 设定关闭状态节点图标

renderer.setOpenIcon(openIcon);// 设定打开状态节点图标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值