`
mytream
  • 浏览: 73199 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

用JTree开发用户列表界面

阅读更多

 

 

以下,笔者将介绍如果通过对JTree对象的操作实现如下功能:

1.将用户列表信息展示在JTree的结点上

2.双击某个结点获得该结点的信息

3.根据用户名删除结点

4.根据用户名添加结点

 

###预定义用到的属性

private JTree tree;//Tree to show user names
private DefaultTreeModel model;//Tree model
private DefaultMutableTreeNode root;//根结点
private JFrame frame;//加载组件的面板

###将用户列表信息展示在JTree的结点上

private void createTree(String[] userNames){
		DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的好友");
		for(String userName: userNames) {
			DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(userName);
			friendRoot.add(newNode);
		}
		tree = new JTree(root);
}

###取得JTree的模型(DefaultTreeModel),将JTree加载到滚动面板上,并进行相关设置

public void addFriendList(String[] userNames){
		createTree(userNames);
		model = (DefaultTreeModel)tree.getModel();
		tree.setFont(new Font("微软雅黑",Font.PLAIN,16));
		JScrollPane sp = new JScrollPane(tree);
		sp.setBounds(0, 150, 300, 400);
		sp.setBackground(Color.white);
		frame.add(sp);
		javax.swing.SwingUtilities.updateComponentTreeUI(tree);
}

###双击某个结点获得该结点的信息

tree.addMouseListener(new  MouseAdapter{
		public void mouseClicked(MouseEvent e) {
			if(e.getClickCount()==2){
				DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
				String selectedStr = (String)selectedNode.getUserObject();
				if(selectedStr.equals("我的好友"))return;
				else{
					System.out.println("您选择的结点是:"+selectedStr);
					//此处添加对结点进行操作的代码
				}
			}
		}
});

###根据用户名获得JTree对象中对应的结点

private DefaultMutableTreeNode getUserNodeOnTree(String userName){
		//广度优先遍历
		Enumeration<TreeNode> e = (Enumeration<TreeNode>)root.breadthFirstEnumeration();
		DefaultMutableTreeNode node=null;
		while(e.hasMoreElements()) {
			node = (DefaultMutableTreeNode)e.nextElement();
			if(node.getUserObject().toString().equals(userName)) return node;
		}
		return null;
}

###根据用户名添加结点

public void addUser(String userName){
		if(userName==null || userName.trim().length()==0) return ;
		DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(userName);
		model.insertNodeInto(newNode, root, root.getChildCount());//在指定位置插入结点
}

###根据用户名删除结点     

public void removeUser(String userName){
		MutableTreeNode userNode = getUserNodeOnTree(userName);
		if(userNode == null) return;
		model.removeNodeFromParent(userNode);//删除结点
}

下面是笔者根据以上操作编写的一个用户列表界面,供参考:

用户列表界面

由于笔者水平有限,错误疏漏之处在所难免,欢迎读者提出修改完善意见~~

笔者QQ:422104389 ,技术博客:yyzjava.iteye.com(那年此时)

分享到:
评论
2 楼 hxy850809 2012-05-31  
这和QQ不一样啊
1 楼 李瑞辉++ 2011-09-25  

相关推荐

    jtree和QQ项目\使用jmenu实现QQ的好友界面

    在Java编程领域,`JTree` 和 `JMenu` 是Swing库中的两个重要组件,它们常用于构建用户界面。本项目"jtree和QQ项目\使用jmenu实现QQ的好友界面"旨在利用这两个组件来复刻QQ软件的好友管理功能,提供一个直观且易于...

    JTree控件的使用

    总结来说,`JTree`控件在Java Swing中用于创建和管理树形数据视图,提供了丰富的构造方法、数据模型、渲染器和事件监听机制,使得开发者可以灵活地构建和定制树结构,以满足各种用户界面的需求。在实际开发中,利用...

    JAVA JTREE JTABLE实例代码

    在Java Swing库中,JTree和JTable是两个非常重要的组件,它们被广泛用于构建用户界面,特别是处理数据展示和交互。JTree用于显示层次结构的数据,而JTable则适用于二维表格形式的数据展现。 首先,我们来深入了解...

    swing界面设计之JTree

    本节主要介绍如何利用Spring框架结合Swing来开发图形用户界面(GUI),并通过依赖注入来增强应用程序的灵活性与可维护性。 **前提条件** - Java基础知识。 - Spring框架的基础知识。 - 对Swing有一定的了解。 **...

    Jtree

    这个组件在GUI(图形用户界面)应用中特别常见,因为它能清晰地组织层次化的信息,比如文件系统目录、数据库结构或者项目组织。标题中的"Jtree"很可能指的是这个Java组件,而描述中的“XML的树形目录,转载”则暗示...

    JTree

    通过熟练掌握 `JTree` 的使用,开发者可以构建更强大、更灵活的图形用户界面。 总结,`JTree` 是Java GUI编程中的一个关键组件,它为呈现和操作层次数据提供了便利。理解其核心概念、特性和使用方法,可以帮助...

    JTree的实现代码

    在IT领域,尤其是在Web开发中,`JTree`是一个常用组件,它用于在用户界面中展示数据的层次结构,比如文件系统、组织架构等。在本案例中,我们讨论的是一个使用JavaScript实现的JTree,这通常是通过HTML、CSS和...

    JTree的Doc文档

    4. **Root Node**:树的起始节点,通常不显示在用户界面中,但它是树结构的基础。 5. **Listeners**:`JTree`支持多种监听器,如`TreeSelectionListener`用于监听节点选择变化,`TreeModelListener`监听模型的变化...

    netbeans-Jtree

    `JTree`是Java Swing中的一个图形用户界面(GUI)组件,它允许用户以树状结构来浏览数据。在`JTree`中,每个节点可以有子节点,这种结构可以无限递归,形成多层级的树。在本项目中,树有三级深度,意味着用户可以...

    jTree添加图片

    在IT领域,尤其是在软件开发中,用户界面的设计与交互性是至关重要的。`jTree`是Java Swing库中一个用于创建树形结构视图的组件,它允许用户以树状结构展示数据。在这个主题中,"jTree添加图片"是指在jTree的不同...

    jtree的详细使用说明

    `JTree` 是 Java Swing 中一个非常强大的组件,它能够帮助开发者构建复杂的用户界面。通过本篇介绍,我们不仅了解了如何使用 `JTree` 的基本构造方法来创建树形结构,还学习了如何使用 `Hashtable` 来组织数据以及...

    JTree 需要树的可以研究下

    在实际开发中,理解并熟练运用`JTree`可以帮助我们创建直观的用户界面,让用户能够高效地浏览和操作层次化的数据。通过学习和实践,你可以进一步掌握如何利用`JTree`实现复杂的功能,如自定义节点图标、动态更新树...

    详细介绍JTree控件的教程以及源码

    Java Swing中的JTree控件是用于展示层次结构数据的组件,它在图形用户界面中扮演着树状视图的角色。本教程将深入讲解JTree的使用方法,包括创建、配置、事件处理以及自定义节点图标等方面,同时提供相关的源码示例。...

    xml文档分析--用jtree实现图形化

    这个小程序不仅适用于学习JAXP接口,还可以作为理解Java图形用户界面开发的基础练习。通过这样的项目,开发者可以更好地理解和操作XML文档,同时掌握Swing库的使用技巧。如果你在实践中遇到任何问题,欢迎与其他...

    java中JTree的简单应用

    Java中的JTree组件是Swing库中的一个关键部分,它用于在用户界面中展示树状数据结构。在Java Swing应用程序中,JTree常用于显示文件系统目录、数据库结构或者自定义对象的层次关系。这个“java中JTree的简单应用”...

    JTree 更新版 不错的树形控件

    在Java Swing库中,JTree是一个非常重要的组件,它用于展示层次数据,通常以树状结构显示。...无论是新手还是经验丰富的Java开发者,都应该熟悉并掌握JTree的使用,以创建更加动态和交互的图形用户界面。

    Swing-JTree.rar_jtree_jtree Demo_swing 树

    Swing中的JTree组件是Java GUI(图形用户界面)开发中的一个重要组成部分,它允许程序员创建和展示层次结构数据。在Java Swing库中,JTree是一个用于显示和操作树形数据结构的视图组件。这个“Swing-JTree.rar”文件...

    JTree2.0 目录树 菜单导航

    - **文件管理系统**:在文件浏览界面,`JTree2.0` 可以展示文件和文件夹的层级结构,便于用户查找和管理文件。 **优化与扩展** - **异步加载**:对于包含大量节点的情况,可以优化为按需异步加载子节点,减少初次...

    Java用户界面编程指南

    Java用户界面(UI)编程是开发桌面应用、Web应用或移动应用的重要组成部分,它涉及到创建交互式的图形界面,使得用户可以与程序进行直观的交互。本指南将深入讲解如何使用Java进行用户界面设计和实现。 一、Java UI...

Global site tag (gtag.js) - Google Analytics