JTree实例
JTree实例
private void createTreeByXdDdt() {
DefaultComboBoxModel boxModel = (DefaultComboBoxModel) cmbXdDdt.getModel();
XdDdt xdDdt = (XdDdt) boxModel.getSelectedItem(); // 得到选中的调度台对象;
DefaultMutableTreeNode root = new DefaultMutableTreeNode(xdDdt);
List<PLthDes> pLthDesList = getPLthDesListByLthid(xdDdt.getLth()); // 根据调度台获得p_lth_des对象集合
for (PLthDes pLthDes : pLthDesList) {
DefaultMutableTreeNode pLthDesNode = new DefaultMutableTreeNode(pLthDes);
List<PThNode> pThNodes = getPThNodesByIds(pLthDes.getLthid(),pLthDes.getThid()); // 根据p_lth_des获得p_th_node对象集合
for (PThNode pThNode : pThNodes) {
DefaultMutableTreeNode pThNodeTreeNode = new DefaultMutableTreeNode(pThNode);
pLthDesNode.add(pThNodeTreeNode);
}
root.add(pLthDesNode);
}
DefaultTreeModel treeModel = new DefaultTreeModel(root);
treeModel.addTreeModelListener(new TreeModelListener() {
@Override
public void treeStructureChanged(TreeModelEvent e) {
}
@Override
public void treeNodesRemoved(TreeModelEvent e) {
}
@Override
public void treeNodesInserted(TreeModelEvent e) {
}
@Override
public void treeNodesChanged(TreeModelEvent e) {
DefaultMutableTreeNode treeNode;
TreePath treePath = tree.getSelectionPath();
if(treePath!=null){
treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
Object userObject = treeNode.getUserObject();
System.out.println("TreeModelListener->"+userObject.getClass());
}else{
System.out.println("TreeModelListener->"+"treePath is null");
}
}
});
tree.setModel(treeModel); // 设置树的model
tree.setCellRenderer(new TreeRender()); // 设置树的渲染
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
MouseListener[] mouseListeners = tree.getMouseListeners();
System.out.println("mouseListeners:"+mouseListeners.length);
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
DefaultMutableTreeNode treeNode;
// TreePath treePath = tree.getPathForLocation(e.getX(), e.getY()); // 这样的话,第二次不选中就会是null
TreePath treePath = tree.getSelectionPath(); // 这样的话,第二次不选中也会触发事件;
if(treePath!=null){
treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
Object userObject = treeNode.getUserObject();
System.out.println("MouseClick->"+userObject.getClass());
if(userObject instanceof PLthDes){
PLthDes pLthDes = (PLthDes) userObject;
System.out.println("MouseClick->"+pLthDes.getLthid()+":"+pLthDes.getThid());
}
}else{
System.out.println("MouseClick->"+"treePath is null");
}
}
});
MouseListener[] mouseListeners2 = tree.getMouseListeners();
System.out.println("mouseListeners2:"+mouseListeners2.length);
TreeSelectionListener[] listeners = tree.getTreeSelectionListeners();
System.out.println("TreeSelectionListener:"+listeners.length);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode treeNode;
TreePath treePath = tree.getSelectionPath();
if(treePath!=null){
treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();
Object userObject = treeNode.getUserObject();
System.out.println("TreeSelectionListener->"+userObject.getClass());
}else{
System.out.println("TreeSelectionListener->"+"treePath is null");
}
}
});
TreeSelectionListener[] listeners2 = tree.getTreeSelectionListeners();
System.out.println("TreeSelectionListener2:"+listeners2.length);
}
JTree实例的更多相关文章
- Swing组件Jtree,JTablePane选项卡运用
今天开始写技术博客,说实话,本没有什么技术,说是总结也好,说是分享也罢,总之是想自己有意识的做一些事情,作为一名即将毕业的大学生,总是想以最好的状态,去面向社会,今天就是我准备好了的时候,本人将技术博 ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- JTree实现好友列表
最近学习了一下JTree的使用方法: 先来看一下树的实例: 构建一个树, DefaultMutableTreeNode root = new DefaultMutableTreeNode(" ...
- Java Swing 树状组件JTree的使用方法(转)
树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识.展开 节点是一个非叶节点(由返回 false 的 TreeModel ...
- JTree实现QQ好友列表
最近学习了一下JTree的使用方法: 先来看一下树的实例: 构建一个树, DefaultMutableTreeNode root = new DefaultMutableTreeNode(" ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
随机推荐
- pycharm 安装venv的依赖包
(venv)$ pip install -r requirements.txt
- vi 编辑器跳转到指定行数
如:跳转到25行 :set number :23
- 转:Visual Studio进行Web性能测试- Part I
原文作者:Ambily.raj Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持.本文介 ...
- db2 sqlcode
DB2错误信息(按sqlcode排序) sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被 ...
- 各种命令,以及FAQ..持续更新.....
Linux 篇: CentOs 7 修改主机名 hostnamectl --static set-hostname <host-name> 统计最多的10条记录 awk '{print $ ...
- Jquery和Javascript对象之间的转换
jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象.jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法:例如: $(&quo ...
- FatMouse's Speed 基础DP
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu1915
对于图的东西总是一筹莫展,没办法,还是翻出以前的基础题来看看,然后慢慢分析吧.路漫漫其修远兮,吾将上下而求索…… void bfs(int x,int y){ for(int k=0;k<8;k ...
- android usb挂载分析---MountService启动
android usb挂载分析---MountService启动 分类: android框架 u盘挂载2012-03-27 23:00 11799人阅读 评论(4) 收藏 举报 androidsock ...
- CodeForces 660B Seating On Bus
模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #inc ...