JAVA GUI学习 - JTree树结构组件学习 ***
2013-09-22 11:12
369 查看
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学习笔记-------Java引出GUI组件的事件 ???
- Java笔记(10)-图形界面设计、Swing、窗口、JFrame、常用组件和布局、处理事件、MVC结构、对话框、GUI
- JAVA学习之GUI组件中Toolkit的使用
- JAVA GUI学习 - JFileChooser文件选择器组件学习:未包括JFileChooser系统类学习
- JAVA GUI学习 - JPopupMenu鼠标右键菜单组件学习
- JAVA GUI界面组件学习
- java学习脚印: JTree序列化(Swing组件运用敏捷版)
- JAVA GUI学习 - JDialog模式、非模式窗口组件学习
- JAVA GUI学习 - JMenuBar菜单条、JMenu菜单、JMenuItem菜单项组件学习
- JAVA GUI学习 - JOptionPane对话框组件学习
- JAVA GUI学习 - JSplitPane分屏组件学习
- JAVA GUI学习 - JList列表、JScrollPane滚动条组件学习
- JAVA GUI学习 - JProgressBar进度条组件摘录
- JAVA GUI学习 - JTabbedPane选项卡组件学习
- JAVA GUI学习 - JTable表格组件学习_A ***
- JAVA GUI学习 - JTable表格组件学习_C ***
- 【java学习】GUI组件--CheckBox
- JAVA(学习笔记1.1)——GUI组件与用户界面设计
- Java学习笔记(二)GUI组件(1)
- java 学习笔记---布局管理组件