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 ...
随机推荐
- hrbustoj 2283 heap解题报告
这是我们校赛的一道题,给一个字符串,判断这是字符串描绘的是不是一个堆,并不难,只是一个简单的模拟,但是也稍微有点麻烦,最起码我的方法代码量比较大,主要用栈做一个父亲与儿子的位置匹配,匹配的方法应该有很 ...
- POJ 2723 HDU 1816 Get Luffy Out
二分答案 + 2-SAT验证 #include<cstdio> #include<cstring> #include<cmath> #include<stac ...
- 'xcopy' 'ipconfig'。。。 不是内部或外部命令,也不是可运行的程序 或批处理文件
最近在win8下安装软件的时候,总是报 "xxx不是内部或外部命令,也不是可运行的程序 或批处理文件" 的错误 . 百思不得其解 打开cmd 或 powerShell 输入xco ...
- 转Y-slow23原则(雅虎)
YslowYahoo发布的一款基于FireFox的插件,主要是为了提高网页性能而设计的,下面是它提倡了23条规则,还是很不错的,分享一下: 1.减少HTTP请求次数 合并图片.CSS.JS,改进首次访 ...
- Firebug Console 与命令行全集
Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人员调 ...
- Android——apk反编译
一.工具准备: 1.dex2jar:http://code.google.com/p/dex2jar/downloads/list 2.JD-GUI:windows:http://laichao.go ...
- Cantor表 1083
题目描述 Description 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/ ...
- WPF教程:附加属性
一.附加属性的特点1.特殊的依赖属性2.用于非定义该属性的类 例如Grid面板的RowDefinition.ColumnDefinition.Canvas面板的Left.RightDockPanel面 ...
- CSS3样式linear-gradient的使用(切角效果)
linear-gradient linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果.MDN地址 linear-gradient在不同内核下使用方式不同,详细内容可参考w3cp ...
- (中等) POJ 1436 Horizontally Visible Segments , 线段树+区间更新。
Description There is a number of disjoint vertical line segments in the plane. We say that two segme ...