swing-JTree测试节点的增删改查

这是一个web版本的树管理示例

在这里插入图片描述

swing使用jTree实现树节点的增/删/改

在这里插入图片描述

实现树功能的起步
  • 了解树结构的组成概念
    节点,枝,根,叶,度,层/深度/高度,双亲/孩子/兄弟等
  • 了解树的展开、收起算法
  • 了解树的路径知识
  • 了解子节点与父节点之间的存在的逻辑关系等等
增删改查的思路
  • 从选择的树节点开始, 获得选择的树对象,可以进行修改和删除操作
  • 从选择的树节点开始,可以加入逻辑判断,是添加节点至父节点作为 不可扩展的叶节点,还是修改当前节点为父节点
拖拽的思路
  • 拖拽节点作为初始节点,目标节点作为终止节点,移动根对象位置,比如从1-1-3 移动至 1-3-1等
查找的思路
  • 递归所有的节点,找到符合搜索条件的节点,算法上的优化,可以融入节点直接特定的某些特征作为筛选
jTree增删改查 示例代码

缕清思路最重要,代码没几行
swing的JTree实现节点增删改查,如果不带图标样式 还是相当简单的,这是上图的示例代码

  • 功能按钮: 用到了枚举的小技巧
  • 左侧树: 了解树结构后,便可以轻松的构建初始树
  • 增加主要方法: DefaultTreeModel ==》insertNodeInto
  • 删除主要方法: DefaultTreeModel ==》removeNodeFromParent
  • 更新主要方法: DefaultTreeModel ==》reload

import cn.hutool.core.util.RandomUtil;
import cn.note.swing.core.ui.theme.ButtonFactory;
import cn.note.swing.core.ui.theme.CoreFlatLaf;
import cn.note.swing.core.ui.theme.PngIconFactory;
import cn.note.swing.core.util.FrameUtil;
import cn.note.swing.core.util.WinUtil;
import cn.note.swing.core.view.AbstractMigView;
import cn.note.swing.core.view.Row;
import com.google.common.base.Enums;
import net.miginfocom.swing.MigLayout;
import org.jdesktop.swingx.JXTree;
import org.jdesktop.swingx.icon.EmptyIcon;

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @description: jTree测试
 */
public class JTreeTest extends AbstractMigView {
   
   

    private JXTree tree;
    private DefaultTreeModel<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值