JTree总结

来源:互联网 发布:docker跑windows程序 编辑:程序博客网 时间:2024/04/29 01:30

1、获取当前选中子节点

DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

2、(DefaultTreeModel)tree.getModel()  //添加删除修改树节点时,先将树转换为模型

public void actionPerformed(ActionEvent e) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();// 获取选择的当前节点if (e.getSource() == addItem) {// 为node添加子节点到所有子节点的最后((DefaultTreeModel) tree.getModel()).insertNodeInto(new DefaultMutableTreeNode("Test"), node, node.getChildCount());tree.expandPath(tree.getSelectionPath());} else if (e.getSource() == delItem) {if (node.isRoot()) {return;}// 首先得到模型,转换为DefaultTreeModel,获取到树模型,从父节点上移除该子节点((DefaultTreeModel) tree.getModel()).removeNodeFromParent(node);} else if (e.getSource() == editItem) {tree.startEditingAtPath(tree.getSelectionPath());//不太灵,不能保存}}

3、设置树形的节点选择模式

tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

4、获取每一级节点,分别做处理

valueChanged()是实现了TreeSelectionListener的方法

@Overridepublic void valueChanged(TreeSelectionEvent e) {// 获取选择的节点DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();if (node.getLevel() == 0) {// 显示提示信息JOptionPane.showMessageDialog(null, node.getUserObject() + ": 共"+ node.getChildCount() + "个国家");} else if (node.getLevel() == 1) {// 显示提示信息JOptionPane.showMessageDialog(null, node.getUserObject() + ": 共"+ node.getChildCount() + "名名将");} else if (node.getLevel() == 2) {// 显示提示信息JOptionPane.showMessageDialog(null, node.getParent() + "名将: "+ node.getUserObject());}}

5、window不同的风格通过UIManager.setLookAndFeel(lookAndFeel);来设置。

lookAndFeel的不同种类有空再研究


0 0