JAVA GUI学习 - JTree树结构组件学习 ***
public class JTreeKnow extends JFrame
{
public JTreeKnow()
{
this.setBounds(300, 100, 400, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建树的第一种方式
JTree jTree = new JTree();
this.add(jTree); //创建树的第二种方式:推荐
//创建根节点
DefaultMutableTreeNode defaultMutableTreeNode = new DefaultMutableTreeNode("根节点");
//创建树模型
DefaultTreeModel defaultTreeModel = new DefaultTreeModel(defaultMutableTreeNode);
//创建树
JTree jTree2 = new JTree(defaultTreeModel);
//创建滚动面板
JScrollPane jScrollPane = new JScrollPane(jTree2);
this.add(jScrollPane);
//添加子节点
for(int i = 1; i < 3; i++)
{
DefaultMutableTreeNode defaultMutableTreeNode2 = new DefaultMutableTreeNode("第一阶子节点"+i);
for(int j = 1; j < 4; j++)
{
DefaultMutableTreeNode defaultMutableTreeNode3 = new DefaultMutableTreeNode("第二阶子节点"+i+j);
defaultMutableTreeNode2.add(defaultMutableTreeNode3);
}
defaultMutableTreeNode.add(defaultMutableTreeNode2);
} //获取根节点
DefaultMutableTreeNode defaultMutableTreeNode2 = (DefaultMutableTreeNode) defaultTreeModel.getRoot();
//根据父节点索引+子节点索引找到节点
DefaultMutableTreeNode defaultMutableTreeNode3 = (DefaultMutableTreeNode) defaultTreeModel.getChild(defaultMutableTreeNode2, 0);
System.out.println(defaultMutableTreeNode3);
//获取某一节点到顶级节点(根节点)之间所有的节点 //获取某节点所对应的阶层
int level = defaultMutableTreeNode3.getLevel(); //刷新重新绘制节点数(重要)
defaultTreeModel.reload();
//获取所有节点:迭代器
Enumeration<DefaultMutableTreeNode> nodes = defaultMutableTreeNode.children();
//判断某节点是否是根节点、页节点isLeaf()
((DefaultMutableTreeNode)defaultMutableTreeNode.getChildAt(0)).isRoot(); /*******************************************监听器****************************************/
//
/***************JTree的监听器**************/
//绑定选项监听器
//某节点被选中了
jTree2.addTreeSelectionListener(new TreeSelectionListener()
{
@Override
public void valueChanged(TreeSelectionEvent e)
{
// TODO Auto-generated method stub
// System.out.println("节点被选择");
//获取选中的treePath,treePath即根节点至所选节点的集合
// System.out.println(tree.getSelectionPath());
// //获取节点集合的数量
// System.out.println(tree.getSelectionPath().getPathCount());
// //获取选中的节点对象
// System.out.println((DefaultMutableTreeNode)tree.getSelectionPath().getLastPathComponent()); System.out.println(e.getPath().getLastPathComponent());
}
});
//为降低程序的错误率,监听器addTreeWillExpandListener和监听器addTreeExpansionListener通常会同时搭配使用,
//以确保程序菜单正常、正确打开
//绑定数结展开折叠的监听器
//节点被展开了
jTree2.addTreeExpansionListener(new TreeExpansionListener()
{
/**
* 展开事件
*/
@Override
public void treeExpanded(TreeExpansionEvent event)
{
// TODO Auto-generated method stub
System.out.println(event.getPath().getLastPathComponent()+" 被展开");
}
/**
* 折叠
*/
@Override
public void treeCollapsed(TreeExpansionEvent event)
{
// TODO Auto-generated method stub
System.out.println(event.getPath().getLastPathComponent()+" 被折叠");
}
}); //绑定树结构将要执行展开和折叠的监听器
//节点将被展开:通常使用本方法对节点进行动态的显示控制
jTree2.addTreeWillExpandListener(new TreeWillExpandListener()
{
/**
* 将被展开的事件
*/
@Override
public void treeWillExpand(TreeExpansionEvent event)
throws ExpandVetoException
{
// TODO Auto-generated method stub
System.out.println(event.getPath().getLastPathComponent()+" 将被展开"); }
/**
* 将被折叠的事件
*/
@Override
public void treeWillCollapse(TreeExpansionEvent event)
throws ExpandVetoException
{
// TODO Auto-generated method stub
System.out.println(event.getPath().getLastPathComponent()+" 将被折叠");
}
});
}
public static void main(String[] args)
{
JTreeKnow jTreeKnow = new JTreeKnow();
jTreeKnow.setVisible(true);
}
}
JAVA GUI学习 - JTree树结构组件学习 ***的更多相关文章
- Java GUI编程4---标签组件JLabel
Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...
- JAVA GUI学习 - JOptionPane对话框组件学习
/** * 对话框 - 学习笔记 * @author Wfei * */ public class JoptionPaneKnow extends JFrame { public JoptionPan ...
- JAVA GUI学习 - JTable表格组件学习_C ***
/** * JTable高级应用 * @author Wfei * */ public class JTableKnow_C extends JFrame { JTable jTable; MyJMe ...
- JAVA GUI学习 - JTable表格组件学习_A ***
public class JTableKnow_A extends JFrame { public JTableKnow_A() { this.setBounds(300, 100, 400, 300 ...
- JAVA GUI学习 - JTabbedPane选项卡组件学习
public class JTabbedPaneKnow extends JFrame { JTabbedPane jTabbedPane; JPanel jPanelRed; JPanel jPan ...
- Informatic学习总结_day03_update组件学习
- C# BackgroundWorker组件学习
C# BackgroundWorker组件学习 C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用Ba ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- Java GUI学习,贪吃蛇小游戏
JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...
随机推荐
- Excel表格中汉字转拼音
一.使用“实用汉字转拼音V4.8” 软件 下载地址http://www.orsoon.com/soft/4413.html 或则百度 很多的 二.Excel自定义函数方法: 1.启动Excel 200 ...
- IO库 8.3
题目:什么情况下,下面的while循环会终止? while(cin >> i) /* ... */ 解答:当读取发生错误时上述while循环会终止.比如i是整形,却输入非整形的数:输入文件 ...
- A - 数塔
A - 数塔 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- mysql批量上传数据
private object BlubckMysql(List<xiaoyao_blogs_pictureModel> list, string connect) { var sqllis ...
- jQuery实时获取checkbox状态问题
在最近的项目开发中,使用jQuery操作checkbox时,发现一个问题. Html代码如下: <body> <div> <inputtype="checkbo ...
- zoj 2589 Matrix Searching 二维线段树
题目链接 给一个n*n的矩阵, 给q个查询, 每次给出x1, y1, x2, y2, 求这个矩阵中的最小值. 代码基本上和上一题相同... #include<bits/stdc++.h> ...
- poj 2688 Cleaning Robot bfs+dfs
题目链接 首先bfs, 求出两两之间的距离, 然后dfs就可以. #include <iostream> #include <cstdio> #include <algo ...
- java附件上传下载磁盘版
ACTION public class UploadAction extends BaseAction { private static final long serialVersionUID = 1 ...
- FTL(Flash translation layer)闪存转换层
前面说过,闪存的读写单位为页,而页的大小一般为4KB或8KB,但我们的操作系统读写数据是按HDD的扇区尺寸进行的(512Byte(字节)),更麻烦的是闪存擦除以块作单位,而且未擦除就无法写入,这导致操 ...
- Google市场推广统计
Google Play作为Android最大的应用市场,也存在这推广等常用的行为,那么如何统计呢,Google Analytics SDK或者其他的SDK都提供了方法,实际上是可以不需要任何sdk,完 ...