这是一个关于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和QQ项目\树实现好友列表,并模拟来信图片变换
Jtree的使用例子 这是类似qq的节点例子 帮助我们是简单地编码
java组件之jtree使用 10-1:使用JTree组件: 10-2:以Hashtable构造JTree: 10-3:以TreeNode构造JTree: . . . . 10-8:JTree的其他操作:
很多同志在用java做仿QQ聊天程序或者是做聊天程序时,都不自觉得想到了QQ好友列表,可是java中的JTree没有那个功能,又要显示头像又要显示昵称,这个资源不仅可以实现以上功能,而且可以显示个性签名和空间动态等,...
JAVA JTREE实例代码、JAVA JTABLE实例代码
java JTree+JTable使用样例,实现将JTree的节点内容显示到JTable中,eclipse导入maven项目 maven编译: mvn clean package
java使用jtree动态实现二叉树,包含二叉树的插入删除很查找
jtree和QQ项目\使用jmenu实现QQ的好友界面
java中的关于jtree编程的详细介绍,通过jtree的使用,掌握模型设计的核心技术,同时丰富了java界面的美观度和实用度。
package中找到,读者可自行查阅java api文件。在实际的应用上,一般我们不会直接实作此界面,而是采用java所提供的 DefaultMutableTreeMode类,此类是实作MutableTreeNode界面而来,并提供了其他许多实用的方法。...
java代码-使用java解决JTree文件浏览的源代码
java代码-使用java解决JTree访问XML的源代码 ——学习参考资料:仅用于个人学习使用!
JAVA中的Swing的JTree操作的宝典, 对树节点的增 删 改 查
JAVA中的Swing. jtree和QQ项目\带有右键的树(数据库), 带有数据库表的sql文件
用JSplitePane将窗口划分为左右两部分。单机左边菜单,在右边串口显示显示相关性息。相关功能可自行添加。
java代码-使用java解决JTree JSON的源代码 ——学习参考资料:仅用于个人学习使用!
java代码-使用java解决XML2JTree的源代码 ——学习参考资料:仅用于个人学习使用!
巧用Java中的JTree和卡片布局制作帮助文档.pdf
JTree的例子,可以拖动节点 JTree的例子,可以拖动节点
jtree和QQ项目\树上实现了弹出聊天窗口(传递了当前点击的树节点的图片和文字)