首页 > 代码库 > [Swing]树形结构的实现
[Swing]树形结构的实现
一般步骤:
1、建立根节点
private DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");
2、建立树形模型
private DefaultTreeModel treeModel = new DefaultTreeModel(root);
3、建立树
private JTree tree = new JTree(treeModel);
4、向树内添加节点
DefaultMutableTreeNode node = new DefaultMutableTreeNode("一级节点");DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("二级节点");/*方法:insertNodeInto(DefaultMutableTreeNode child, DefaultMutableTreeNode parent, int index)形参:child 所要插入的节点形参:parent 插入节点的上级节点形参: index 插入节点在父节点下的位置*/treeModel.insertNodeInto(node, root, root.getChildCount());treeModel.insertNodeInto(node2, node, node.getChildCount());
5、添加节点监听器
tree.addTreeSelectionListener(new TreeSelectionListener(){ public void valueChanged(TreeSelectionEvent e){ //监听器操作代码 }});
6、添加显示
JFrame jf = new JFrame("树形结构");jf.add(tree);jf.setVisiable(true);
7、对树属性的一些描述方法举例
//获取树节点渲染器DefaultTreeCellRenderer cellRenderer = tree.getCellRenderer();//设置未选择时为黑色cellRenderer.setTextNonSelectionColor(Color.black);//设置选择时为蓝色cellRenderer.setTextSelectionColor(Color.blue);//设置选择模式只能选择一个tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
代码举例:
package test;import java.awt.Color;import java.awt.Dimension;import java.awt.Toolkit;import javax.swing.JFrame;import javax.swing.JTree;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreeSelectionModel;@SuppressWarnings("serial")public class Test extends JFrame implements TreeSelectionListener{ private DefaultMutableTreeNode root, node_1, node_2; private DefaultTreeModel treeModel; private JTree tree; public Test(){ this.setSize(200, 150); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width - this.getSize().width)/2; int y = (screenSize.height - this.getSize().height)/2; this.setLocation(x, y); root = new DefaultMutableTreeNode("根节点"); node_1 = new DefaultMutableTreeNode("一级"); node_2 = new DefaultMutableTreeNode("二级"); treeModel = new DefaultTreeModel(root); treeModel.insertNodeInto(node_1, root, root.getChildCount()); treeModel.insertNodeInto(node_2, node_1, node_1.getChildCount()); tree = new JTree(treeModel); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); cellRenderer.setTextNonSelectionColor(Color.black); cellRenderer.setTextSelectionColor(Color.blue); this.add(tree); this.setVisible(true); } public void valueChanged(TreeSelectionEvent e) { } public static void main(String[] args){ @SuppressWarnings("unused") Test test = new Test(); } }
运行如下图:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。