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的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...
随机推荐
- jsp-forward跳转
在Web中可以使用<jsp:forward>指令,将一个用户的请求(request)从一个页面传递到另一个页面,即完成跳转的操作. 1.调整前页:tiaozhuan_a.jsp 代码: & ...
- Maven java项目管理工具
Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...
- MQ学习(二)----ActiveMQ简介(转)
1. 什么是ActiveMQ ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用A ...
- BZOJ 1492: [NOI2007]货币兑换Cash( dp + 平衡树 )
dp(i) = max(dp(i-1), x[j]*a[i]+y[j]*b[i]), 0<j<i. x, y表示某天拥有的最多钱去买金券, 金券a和金券b的数量. 然后就很明显了...平衡 ...
- BZOJ 3261: 最大异或和( 可持久化trie )
搞成前缀和然后就可以很方便地用可持久化trie维护了.时间复杂度O((N+M)*25) -------------------------------------------------------- ...
- expect交互式自动化脚本
一 什么是expect 1 Expect is a tool for automating interactive applications such as telnet, ftp, passwd, ...
- Hadoop学习笔记01——Hadoop分布式文件系统
Hadoop有一个称为HDFS的分布式系统,全称为Hadoop Distributed Filesystem. HDFS有块(block)的概念,默认为64MB,HDFS上的文件被划分为块大小的多个分 ...
- poj 1949 Chores 最长路
题目链接 求出最长路..... #include <iostream> #include <vector> #include <cstdio> #include & ...
- 原理图产生网络表后导进PADS之后,网络乱了的问题
问题描述:在Orcad中生成的网络表(格式.ASC),导进PADS9.2中(PADS9.2中已有一些元器件),结果报Mixing nets,如下图示. 仔细检查原理图中的这些nets,发现有的有错,有 ...
- file_get_contents post数据
//默认模拟的header头 private function _defaultHeader() { $header = "User-Agent:Mozilla/5.0 (Windows; ...