这是一个关于java中JTree中双击树中的节点的例子。。。希望多学习学习。。。
package net.etwo.jtree.example;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.Socket;
import java.util.Vector;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class TestJTreeCount {
private JFrame jframeFriendList;
private JPanel jpanelFrendList;
private JButton jbtnOnlineFriendList, jbtnMyGroupChat;
private JList jlistOnlineFriendList;
private DefaultListModel defaultListModel;
private JScrollPane jscrollPaneOnlineFriendList;
private JScrollPane jscrollPaneOnlineFriendListJTree;
// 设置树
private JTree jtree;
// 设置节点(此节点为跟节点)
private DefaultMutableTreeNode dmtnRoot = new DefaultMutableTreeNode();
private DefaultMutableTreeNode dmtnOnlineUsersRoot = new DefaultMutableTreeNode(
"我的好友");
private DefaultMutableTreeNode dmtnMyGroup = new DefaultMutableTreeNode(
"我的群");
private DefaultMutableTreeNode dmtnUnknownUsers = new DefaultMutableTreeNode(
"陌生人");
private DefaultMutableTreeNode dmtnBlackName = new DefaultMutableTreeNode(
"黑名单");
// 设置节点(此节点为好友列表节点)
private DefaultMutableTreeNode dmtnLeaf;
private DefaultMutableTreeNode dmtnGroup = new DefaultMutableTreeNode("群聊");
public TestJTreeCount() {
// TODO Auto-generated constructor stub
initView();
acctionListener();
setOnlineList();
}
public static void main(String[] args) {
new TestJTreeCount();
}
// 视图
public void initView() {
jframeFriendList = new JFrame();
jpanelFrendList = new JPanel();
defaultListModel = new DefaultListModel();
// jlistOnlineFriendList = new JList(defaultListModel);
jlistOnlineFriendList = new JList();
jbtnOnlineFriendList = new JButton("在线用户");
jbtnOnlineFriendList.setEnabled(false);
jbtnMyGroupChat = new JButton("模拟QQ设计");
jbtnMyGroupChat.setEnabled(false);
jpanelFrendList.setLayout(null);
// 列表显示
// dmtnRoot.add(dmtnLeaf);
jtree = new JTree(dmtnRoot);
// 设置根节点是否显示
jtree.setRootVisible(false);
jtree.putClientProperty("JTree.lineStyle", "None");// 清除线
jtree.setShowsRootHandles(true);// 设置图标
dmtnRoot.add(dmtnOnlineUsersRoot);
dmtnRoot.add(dmtnMyGroup);
dmtnRoot.add(dmtnUnknownUsers);
dmtnRoot.add(dmtnBlackName);
dmtnMyGroup.add(dmtnGroup);
jscrollPaneOnlineFriendListJTree = new JScrollPane(jtree);
jscrollPaneOnlineFriendList = new JScrollPane(jlistOnlineFriendList);
// jscrollPaneOnlineFriendList.getViewport()
// .setView(jlistOnlineFriendList);
jbtnOnlineFriendList.setBounds(0, 0, 250, 30);
jscrollPaneOnlineFriendList.setBounds(0, 30, 250, 570);
jscrollPaneOnlineFriendListJTree.setBounds(0, 30, 250, 570);
jbtnMyGroupChat.setBounds(0, 595, 250, 30);
jpanelFrendList.add(jbtnOnlineFriendList);
jpanelFrendList.add(jscrollPaneOnlineFriendListJTree);
// jpanelFrendList.add(jscrollPaneOnlineFriendList);
jpanelFrendList.add(jbtnMyGroupChat);
jframeFriendList.add(jpanelFrendList);
jframeFriendList.setSize(250, 650);
jframeFriendList.setResizable(false);
jframeFriendList.setLocationRelativeTo(null);
jframeFriendList
.setDefaultCloseOperation(jframeFriendList.EXIT_ON_CLOSE);
jframeFriendList.setVisible(true);
}
// 触发事件
public void acctionListener() {
// 选择好友聊天
jtree.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
// super.mouseClicked(e);
int count = jtree.getRowForLocation(e.getX(), e.getY());
if (e.getClickCount() == 1)
System.out.println(count);
if (count != -1) {
String strFriendUsername = jtree
.getLastSelectedPathComponent().toString();
if (e.getClickCount() == 2 && count != 0
&& !strFriendUsername.equals("陌生人")
&& !strFriendUsername.equals("黑名单")
&& !strFriendUsername.equals("我的群")) {
if (jtree.isRowSelected(jtree.getRowForLocation(
e.getX(), e.getY()))) {
System.out.println("你双击了:" + strFriendUsername);
}
}
}
}
});
// 关闭事件
jframeFriendList.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
// super.windowClosing(e);
System.exit(0);
}
});
}
// 设置在线列表
public void setOnlineList() {
String onlineUsers = null;
for (int i = 0; i < 5; i++) {
onlineUsers += "go";
dmtnLeaf = new DefaultMutableTreeNode(onlineUsers);
dmtnOnlineUsersRoot.add(dmtnLeaf);
}
jtree.updateUI();
}
}
分享到:
相关推荐
`JTree`是Java Swing中的一个重要组件,用于展示层次化的数据结构。它提供了一种直观的方式来表示具有层级关系的数据,例如文件系统的目录结构或者组织架构等。本文将详细介绍如何在Java程序中使用`JTree`,包括其...
jtree和QQ项目\树实现好友列表,并模拟来信图片变换
Jtree的使用例子 这是类似qq的节点例子 帮助我们是简单地编码
Java Swing中的JTree组件是用来展示层次结构数据的可视化控件,它通常用于文件系统或组织结构的表示。JTree的核心是TreeNode接口,每个节点都对应一个TreeNode对象。TreeNode定义了一系列方法,如`getChildCount()`...
很多同志在用java做仿QQ聊天程序或者是做聊天程序时,都不自觉得想到了QQ好友列表,可是java中的JTree没有那个功能,又要显示头像又要显示昵称,这个资源不仅可以实现以上功能,而且可以显示个性签名和空间动态等,...
在QQ项目中,`JTree` 可能被用来模拟QQ的好友分组结构,用户可以通过展开和折叠节点来查看不同分组以及其中的好友列表。每个节点可以代表一个分组,子节点则代表该分组下的好友。通过`DefaultTreeModel`和`TreeNode`...
在Java编程中,`JTree`是Swing库中的一个组件,用于展示树形数据结构。这个组件在GUI(图形用户界面)应用中非常常见,因为它可以清晰地展示层次关系的数据,比如文件系统目录结构。在Java中动态实现二叉树,即在...
在Java Swing库中,JTree和JTable是两个非常重要的组件,它们被广泛用于构建用户界面,特别是处理数据展示和交互。JTree用于显示层次结构的数据,而JTable则适用于二维表格形式的数据展现。 首先,我们来深入了解...
在Java Swing库中,`JTree`和`JTable`是两种非常重要的组件,用于创建用户界面。`JTree`通常用于展示层次化的数据结构,而`JTable`则适用于二维表格数据的显示和操作。本项目是关于如何在Java应用程序中结合使用这两...
Java中的JTree组件是Swing库中的一个关键部分,它用于在用户界面中展示树状数据结构。在Java Swing应用程序中,JTree常用于显示文件系统目录、数据库结构或者自定义对象的层次关系。这个“java中JTree的简单应用”...
Java中的JTree组件是Swing库提供的一种用于展示树形数据结构的图形用户界面(GUI)元素。在Java中,JTree通常用于显示文件系统、应用程序的层次结构或任何具有层级关系的数据。JTree的高级编程涉及到多个方面,包括...
java代码-使用java解决JTree文件浏览的源代码
在Java的Swing库中,JTree是一个非常重要的组件,用于展示层次结构的数据。它以树状的形式显示信息,使得用户能够浏览和交互这些数据。本篇“JAVA中的Swing的JTree操作的宝典”将深入探讨如何进行树节点的增加、删除...
总的来说,"jtree带复选框的例子"是一个很好的学习资源,它教你如何在Java Swing应用程序中提供用户友好的多选交互,这对于构建数据管理界面或者配置界面来说是非常有价值的。通过深入研究和实践这个示例,你将能够...
总之,这个"jtree和QQ项目\带有右键的树(数据库)"项目涉及了Java Swing中的`JTree`组件、右键菜单的实现、数据库操作以及JDBC的使用,这些都是Java GUI编程和数据库应用中的核心知识点。通过这个项目,开发者不仅...
在`JTree`中实现拖放功能,我们需要利用Java Swing提供的`TransferHandler`类和一些相关的事件监听器。 1. **创建`JTree`实例**: 首先,你需要创建一个`DefaultMutableTreeNode`作为树的数据模型,并将其设置到`...
java代码-使用java解决JTree访问XML的源代码 ——学习参考资料:仅用于个人学习使用!
在Java Swing中,JTree是一个非常重要的组件,用于展示层次结构的数据,通常以树状的形式显示。它在各种用户界面中都有广泛的应用,例如文件系统浏览、组织结构展示等。本教程将深入讲解如何使用JTree以及相关的操作...
`jTree`是Java Swing库中用于创建和展示树形数据结构的一个组件,它允许用户以图形化的方式查看和操作层次化的数据。本项目的核心是利用`jTree`实现一个功能,即当用户在树形结构上点击一个节点时,能够弹出一个聊天...
用JSplitePane将窗口划分为左右两部分。单机左边菜单,在右边串口显示显示相关性息。相关功能可自行添加。