博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java JTree_6
阅读量:4650 次
发布时间:2019-06-09

本文共 3599 字,大约阅读时间需要 11 分钟。

import java.awt.BorderLayout;import java.awt.Container;import javax.swing.JFrame;import javax.swing.JTree;import javax.swing.event.TreeExpansionEvent;import javax.swing.event.TreeExpansionListener;import javax.swing.event.TreeWillExpandListener;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.ExpandVetoException;import javax.swing.tree.TreePath;public class JTree_6 extends JFrame {	/**	 * 	 */	private static final long serialVersionUID = -7110119222281494418L;	public JTree_6() {		// TODO Auto-generated constructor stub		DefaultMutableTreeNode root = new DefaultMutableTreeNode("倾城爱家");		DefaultMutableTreeNode nodeA = new DefaultMutableTreeNode("经理办公室");		DefaultMutableTreeNode nodeB = new DefaultMutableTreeNode("人事部");		DefaultMutableTreeNode nodeC = new DefaultMutableTreeNode("技术部");		DefaultMutableTreeNode nodeD = new DefaultMutableTreeNode("服务部");		DefaultMutableTreeNode nodeE = new DefaultMutableTreeNode("推广部");		DefaultMutableTreeNode nodeCA = new DefaultMutableTreeNode("网络维护部");		DefaultMutableTreeNode nodeCB = new DefaultMutableTreeNode("应用开发部");		DefaultMutableTreeNode nodeDA = new DefaultMutableTreeNode("网络服务部");		DefaultMutableTreeNode nodeDB = new DefaultMutableTreeNode("内勤开发部");		root.add(nodeA);		root.add(nodeB);		root.add(nodeC);		root.add(nodeD);		root.add(nodeE);		nodeC.add(nodeCA);		nodeC.add(nodeCB);		nodeD.add(nodeDA);		nodeD.add(nodeDB);		final DefaultTreeModel treeModel = new DefaultTreeModel(root);		final JTree tree = new JTree(treeModel);		Container container = getContentPane();		container.add(tree, BorderLayout.CENTER);		tree.addTreeWillExpandListener(new TreeWillExpandListener() {			@Override			public void treeWillCollapse(TreeExpansionEvent event)					throws ExpandVetoException {				// TODO Auto-generated method stub				TreePath path = event.getPath();				DefaultMutableTreeNode node = (DefaultMutableTreeNode) path						.getLastPathComponent();				System.out.println("节点“" + node.getUserObject() + "”将被折叠!");			}			@Override			public void treeWillExpand(TreeExpansionEvent event)					throws ExpandVetoException {				// TODO Auto-generated method stub				TreePath path = event.getPath();				DefaultMutableTreeNode node = (DefaultMutableTreeNode) path						.getLastPathComponent();				System.out.println("节点“" + node.getUserObject() + "”将被展开!");			}		});		tree.addTreeExpansionListener(new TreeExpansionListener() {			@Override			public void treeCollapsed(TreeExpansionEvent event) {				// TODO Auto-generated method stub				TreePath path = event.getPath();				DefaultMutableTreeNode node = (DefaultMutableTreeNode) path						.getLastPathComponent();				System.out.println("节点“" + node.getUserObject() + "”已经被折叠!");				System.out.println();			}			@Override			public void treeExpanded(TreeExpansionEvent event) {				// TODO Auto-generated method stub				TreePath path = event.getPath();				DefaultMutableTreeNode node = (DefaultMutableTreeNode) path						.getLastPathComponent();				if ((node.getUserObject()).equals("技术部")) {					System.out.println("您没有权限查看该节点包含的子节点");					tree.collapsePath(path); // 内部类中引用的变量必须为final				} else {					System.out.println("节点“" + node.getUserObject() + "”已经被展开!");					System.out.println();				}			}		});	}	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		JTree_6 instance = new JTree_6();		instance.setTitle("处理展开节点事件");		instance.setVisible(true);		instance.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		instance.pack();	}}

转载于:https://www.cnblogs.com/javaTest/archive/2012/05/22/2589170.html

你可能感兴趣的文章