Java获取树节点TreePath的两个方法

2019年1月9日21:34:15 评论 372

Java获取树节点TreePath共有两个方法。

第一方法是最简单的,但是节点必须是 DefaultMutableTreeNodel 类型。一般来说节点都是 DefaultMutableTreeNodel 类型,除非节点直接继承TreeNode接口。

具体见以下代码:

new TreePath(((DefaultMutableTreeNode)treeNode).getPath());

第二个方法稍微有点儿复杂。就是递归获取节点的父节点,并保留每个父节点以及目标节点,最终通过所有节点New TreePath。优点就是目标节点不需要必须是
DefaultMutableTreeNodel类型

具体见以下代码:

	public static TreePath getPath(TreeNode treeNode) {
		List<Object> nodes = new ArrayList<Object>();
		if (treeNode != null) {
			nodes.add(treeNode);
			treeNode = treeNode.getParent();
			while (treeNode != null) {
				nodes.add(0, treeNode);
				treeNode = treeNode.getParent();
			}
		}

		return nodes.isEmpty() ? null : new TreePath(nodes.toArray());
	}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: