以下,笔者将介绍如果通过对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(那年此时)
分享到:
相关推荐
在Java编程领域,`JTree` 和 `JMenu` 是Swing库中的两个重要组件,它们常用于构建用户界面。本项目"jtree和QQ项目\使用jmenu实现QQ的好友界面"旨在利用这两个组件来复刻QQ软件的好友管理功能,提供一个直观且易于...
总结来说,`JTree`控件在Java Swing中用于创建和管理树形数据视图,提供了丰富的构造方法、数据模型、渲染器和事件监听机制,使得开发者可以灵活地构建和定制树结构,以满足各种用户界面的需求。在实际开发中,利用...
在Java Swing库中,JTree和JTable是两个非常重要的组件,它们被广泛用于构建用户界面,特别是处理数据展示和交互。JTree用于显示层次结构的数据,而JTable则适用于二维表格形式的数据展现。 首先,我们来深入了解...
本节主要介绍如何利用Spring框架结合Swing来开发图形用户界面(GUI),并通过依赖注入来增强应用程序的灵活性与可维护性。 **前提条件** - Java基础知识。 - Spring框架的基础知识。 - 对Swing有一定的了解。 **...
这个组件在GUI(图形用户界面)应用中特别常见,因为它能清晰地组织层次化的信息,比如文件系统目录、数据库结构或者项目组织。标题中的"Jtree"很可能指的是这个Java组件,而描述中的“XML的树形目录,转载”则暗示...
通过熟练掌握 `JTree` 的使用,开发者可以构建更强大、更灵活的图形用户界面。 总结,`JTree` 是Java GUI编程中的一个关键组件,它为呈现和操作层次数据提供了便利。理解其核心概念、特性和使用方法,可以帮助...
在IT领域,尤其是在Web开发中,`JTree`是一个常用组件,它用于在用户界面中展示数据的层次结构,比如文件系统、组织架构等。在本案例中,我们讨论的是一个使用JavaScript实现的JTree,这通常是通过HTML、CSS和...
4. **Root Node**:树的起始节点,通常不显示在用户界面中,但它是树结构的基础。 5. **Listeners**:`JTree`支持多种监听器,如`TreeSelectionListener`用于监听节点选择变化,`TreeModelListener`监听模型的变化...
`JTree`是Java Swing中的一个图形用户界面(GUI)组件,它允许用户以树状结构来浏览数据。在`JTree`中,每个节点可以有子节点,这种结构可以无限递归,形成多层级的树。在本项目中,树有三级深度,意味着用户可以...
在IT领域,尤其是在软件开发中,用户界面的设计与交互性是至关重要的。`jTree`是Java Swing库中一个用于创建树形结构视图的组件,它允许用户以树状结构展示数据。在这个主题中,"jTree添加图片"是指在jTree的不同...
`JTree` 是 Java Swing 中一个非常强大的组件,它能够帮助开发者构建复杂的用户界面。通过本篇介绍,我们不仅了解了如何使用 `JTree` 的基本构造方法来创建树形结构,还学习了如何使用 `Hashtable` 来组织数据以及...
在实际开发中,理解并熟练运用`JTree`可以帮助我们创建直观的用户界面,让用户能够高效地浏览和操作层次化的数据。通过学习和实践,你可以进一步掌握如何利用`JTree`实现复杂的功能,如自定义节点图标、动态更新树...
Java Swing中的JTree控件是用于展示层次结构数据的组件,它在图形用户界面中扮演着树状视图的角色。本教程将深入讲解JTree的使用方法,包括创建、配置、事件处理以及自定义节点图标等方面,同时提供相关的源码示例。...
这个小程序不仅适用于学习JAXP接口,还可以作为理解Java图形用户界面开发的基础练习。通过这样的项目,开发者可以更好地理解和操作XML文档,同时掌握Swing库的使用技巧。如果你在实践中遇到任何问题,欢迎与其他...
Java中的JTree组件是Swing库中的一个关键部分,它用于在用户界面中展示树状数据结构。在Java Swing应用程序中,JTree常用于显示文件系统目录、数据库结构或者自定义对象的层次关系。这个“java中JTree的简单应用”...
在Java Swing库中,JTree是一个非常重要的组件,它用于展示层次数据,通常以树状结构显示。...无论是新手还是经验丰富的Java开发者,都应该熟悉并掌握JTree的使用,以创建更加动态和交互的图形用户界面。
Swing中的JTree组件是Java GUI(图形用户界面)开发中的一个重要组成部分,它允许程序员创建和展示层次结构数据。在Java Swing库中,JTree是一个用于显示和操作树形数据结构的视图组件。这个“Swing-JTree.rar”文件...
- **文件管理系统**:在文件浏览界面,`JTree2.0` 可以展示文件和文件夹的层级结构,便于用户查找和管理文件。 **优化与扩展** - **异步加载**:对于包含大量节点的情况,可以优化为按需异步加载子节点,减少初次...
Java用户界面(UI)编程是开发桌面应用、Web应用或移动应用的重要组成部分,它涉及到创建交互式的图形界面,使得用户可以与程序进行直观的交互。本指南将深入讲解如何使用Java进行用户界面设计和实现。 一、Java UI...