`
747017186
  • 浏览: 331390 次
社区版块
存档分类
最新评论

java jtree 指定节点的展开和关闭,选择鼠标最近的节点

    博客分类:
  • java
 
阅读更多

jtree对于指定节点,怎么开启和关闭呢?下面写两个方法,供大家参考。

package com.sysc.xmleditor.utils;

import java.awt.event.MouseEvent;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
/**
 * jtree帮助类
 * @author Administrator
 *
 */
public class TreeHelp {
	/**
	 * 展开指定节点所有后代节点
	 * @param aTree展开所有节点,后代节点层层展开
	 * @param aNode
	 */
	public static void expandTreeNode(JTree aTree, DefaultMutableTreeNode aNode) {
	    if (aNode.isLeaf()) {
	      return;
	    }
	    aTree.expandPath(new TreePath( ( (DefaultMutableTreeNode) aNode).getPath()));
	    int n = aNode.getChildCount();
	    for (int i = 0; i <n; i++) {
	      expandTreeNode(aTree, (DefaultMutableTreeNode) aNode.getChildAt(i));
	    }
	 }
	
	/**
	 * 关闭指定节点所有后代节点
	 * @param aTree,直接关闭指定节点
	 * @param aNode
	 */
	public static void collapseTreeNode(JTree aTree, DefaultMutableTreeNode aNode) {
	    if (aNode.isLeaf()) {
	      return;
	    }
	    
	    TreePath path=new TreePath(aNode.getPath());
	    aTree.collapsePath(path);
	  }
	
	/**
	 * 通过鼠标的位置找到选择的位置
	 * @param tree
	 * @param e
	 */
	public static void selectTreeElem_Mouse(JTree tree,MouseEvent e) {
        TreePath path = getPathByMouse(tree, e);
        tree.setSelectionPath(path);
    }
	
	/**
	 * 返回鼠标最近的treePath节点
	 * @param tree
	 * @param e
	 * @return
	 */
	public static TreePath getPathByMouse(JTree tree,MouseEvent e){
		TreePath path = tree.getPathForLocation(e.getX(),e.getY());//选择鼠标最近的节点的条目
		return path;
	}
}

 

 

分享到:
评论

相关推荐

    JTree的例子,可以拖动节点

    在Java Swing库中,`JTree`是一个非常重要的组件,用于显示和操作树形数据结构。这个例子展示了如何实现一个可拖动节点的`JTree`,这在用户界面设计中是一个常见且实用的功能,特别是在需要展示层次结构信息时。`...

    java中JTree的简单应用

    - `setClosedIcon()`, `setOpenIcon()`, 和 `setLeafIcon()` 可以设置节点的展开、关闭和叶子状态的图标。 5. **交互性**: - `expandRow(int row)` 和 `collapseRow(int row)` 用于展开和折叠指定行。 - `...

    java 实现动态改变树形结构中主节点的名称

    根据提供的文件信息,我们可以分析并总结出以下关于“Java实现动态改变树形结构中主节点的名称”的相关知识点: ### 一、理解树形结构 在计算机科学中,树形结构是一种常用的数据组织形式,它将数据组织成类似于树...

    JTable_JTree.rar_JTable Java_JTree JTable_jtree

    本教程将深入探讨如何在Java Swing应用中使用`JTable`和`JTree`。 `JTable`是Java Swing中的一个组件,它允许我们展示二维的数据,通常以行和列的形式,非常适合处理表格数据。`JTable`可以动态地调整大小,用户...

    JTree

    **监听器(Listener)**:`JTree` 支持多种类型的监听器,如 `TreeSelectionListener` 可以监听用户选择的改变,`TreeModelListener` 可以监听模型的变化,`TreeMouseListener` 和 `TreeKeyListener` 分别处理鼠标和...

    treea.rar_jtree_tree java

    5. **图标和文本**: `JTree` 允许为每个节点设置不同的图标和展开/折叠状态的图标,以增强视觉效果。 6. **默认行为**: `JTree` 有预定义的键盘快捷键和鼠标操作,比如使用空格键选择节点,使用左右箭头展开或折叠...

    jtree和QQ项目\带有右键的树(数据库)

    当用户在`JTree`上点击右键时,可以通过监听鼠标事件并显示`JPopupMenu`来提供一系列与选中节点相关的操作。例如,用户可以右键点击某个表节点,弹出的菜单中包含“查看数据”、“编辑表结构”、“删除表”等选项。...

    JTree 需要树的可以研究下

    `JTree`支持多种事件监听器,如`TreeSelectionListener`(用于监听节点选择变化)、`TreeModelListener`(用于监听模型变化)和`MouseListener`(用于处理鼠标事件)。这些监听器可以帮助我们响应用户与树交互的...

    jtree树应用

    JTree可以配置不同的图标来表示展开、折叠和叶节点,以及不同类型的节点。通过设置`TreeUI`和相关的`Icon`,可以自定义视觉效果。 **8. 文件系统浏览** JTree常用于文件系统浏览器,通过`FileSystemModel`或`...

    Swing-JTree.rar_jtree_jtree Demo_swing 树

    2. **交互性**:用户可以通过单击、双击、拖放等方式与JTree进行交互,进行展开、折叠、选择和重命名等操作。 3. **模型-视图分离**:JTree使用TreeModel接口来存储数据,实现了模型-视图分离,使得数据和显示可以...

    swing界面设计之JTree

    - **MyDefaultTreeCellRenderer.java源代码**:示例代码展示了如何定制JTree节点的渲染器。 #### (十五) JTree控件 **树和节点的基本概念**:介绍了树的基本概念和节点之间的关系。 - **有关树JTree的类和接口**:...

    JTree2.0 目录树

    总结来说,JTree2.0是一个强大的Java Swing组件,用于构建和展示目录树结构。通过理解其基本使用、事件监听、外观定制以及动态数据加载,开发者可以创建出功能丰富的用户界面,满足各种项目需求。在实际应用中,结合...

    所支持拖拽功能的Swing-JTree代码

    在实现拖放功能时,还需要考虑一些其他的细节,比如设置JTree的可选择性、启用鼠标拖动监听等。另外,你可能需要自定义`DropMode`,以控制拖放行为,比如在何处插入新节点(在当前选中节点之前、之后还是作为子节点...

    java实用组件集 源码 树形结构组件

    6. **图标和打开/关闭状态**: `JTree`支持为节点设置不同的图标,比如打开和关闭状态的图标,这可以通过实现`TreeCellRenderer`接口来定制。 7. **遍历树结构**: `TreeNode`接口提供了一组方法来遍历树结构,如`...

    javaJTree实例[参照].pdf

    在`MultiLineCell`示例中,`MultiLineTreeExample.java`和`MultiLineCellRenderer.java`展示了如何在JTree的节点中显示多行文本。通过自定义渲染器,我们可以扩展默认的单元格渲染,使得每个节点的内容可以在多个行...

    Java目录树控件

    为了构建一个表示目录树的JTree,我们需要创建一个DefaultMutableTreeNode对象作为树的根节点,然后添加代表各个目录和文件的子节点。 - 节点可以使用File对象表示,每个File对象对应文件系统中的一个路径。我们...

    java实现系统目录树控件.zip

    `JTree`不仅可以显示目录结构,还可以允许用户交互,例如展开、折叠节点,以及选择特定的文件或目录。要使用`JTree`,我们需要创建一个`DefaultMutableTreeNode`对象,代表树的根节点,然后将文件或目录结构添加到这...

    JAVA swing基本控件实例

    JTree还支持监听事件,如节点展开或选择,以实现与用户的交互。 **ToolBar** 是Swing中的组件,用于创建工具栏,常见于各种应用中。`components-ToolBarDemoProject.zip`和`components-ToolBarDemo2Project.zip`将...

Global site tag (gtag.js) - Google Analytics