实现JTree的一键展开和折叠所有节点
JTree控制起来比较繁琐,节点操作更是让人有点抓狂,跟C#相比麻烦了太多太多.每次操作都需要定位Path或者row,找了个简单的便捷写法封装方法了.
代码如下:
public void ecTreeTest(JTree tree) { TreeNode root = (TreeNode) tree.getModel().getRoot(); expandTree(tree, new TreePath(root)); } private void expandTree(JTree tree, TreePath parent) { TreeNode node = (TreeNode) parent.getLastPathComponent(); if (node.getChildCount() >= 0) { for (Enumeration<?> e = node.children(); e.hasMoreElements();) { TreeNode n = (TreeNode) e.nextElement(); TreePath path = parent.pathByAddingChild(n); expandTree(tree, path); } } tree.expandPath(parent); }
如上代码是展开树的所有节点,如果要折叠所有节点,只需把tree.expandPath(parent);改为tree.collapsePath(parent);即可。
分享到: | |
没有评论