JTree如何展开与收缩 JTree如何展开与收缩是否要自己注册监听事件,然后再事件处理过程中填代码进行处理 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果让用户操作JTree来控制展开与收缩,你不用写代码;如果你想要由程序自动控制展开或收缩,就要写程序了。 JTree的展开和折叠是它自己内部的事,无需手动处理。创建一棵Jtree非常简单,以下为JTree的简单示例。至于其他构造方法可以参看API文档。JTree常用的用法还有给JTree添加右键弹出菜单,遍历JTree等,可以自行搜索。import java.awt.Dimension;import javax.swing.BoxLayout;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTree;public class JTreeDemo { public static void main(String[] args) { // 简单构造函数:返回带有示例模型的 JTree JTree tree = new JTree(); JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); panel.setPreferredSize(new Dimension(400, 400)); panel.add(new JScrollPane(tree)); // JTree必须放在JScrollPane上 JFrame frame = new JFrame("JTreeDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(panel); frame.pack(); frame.setVisible(true); }} 我这边有一个。可以展开节点的 private void expandAllNode(JTree tree, TreePath parent, boolean expand) { // Traverse children 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); expandAllNode(tree, path, expand); } } if (expand) { tree.expandPath(parent); } else { tree.collapsePath(parent); } }调用的时候这样:expandAllNode(jTree, new TreePath(root), true);其中第二个参数如果是root,则展开树里面所有的节点,如果是其他某个节点,则展开这个节点下面所有的子节点及其下级节点。 java小程序算法的实现 jdk源码中问题 抽象方面问题 问个JSP短信平台的问题 JFrame内容需要调整窗口大小,才正确显示 请教一个正则表达式分组的问题 求教一个简单的JAVA函数测试问题 怎么使用package创建一个包? 如何实现TAB事件引起画面跳转 求助!关于翻页的问题,在JAVA中如何计算从数据库中取出的结果集总共可显示多少页? java 求最短路径 编类似qq的聊天软件时碰到了个很奇怪的问题
创建一棵Jtree非常简单,以下为JTree的简单示例。
至于其他构造方法可以参看API文档。
JTree常用的用法还有给JTree添加右键弹出菜单,遍历JTree等,可以自行搜索。import java.awt.Dimension;import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;public class JTreeDemo {
public static void main(String[] args) { // 简单构造函数:返回带有示例模型的 JTree
JTree tree = new JTree(); JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.setPreferredSize(new Dimension(400, 400));
panel.add(new JScrollPane(tree)); // JTree必须放在JScrollPane上 JFrame frame = new JFrame("JTreeDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}
}
private void expandAllNode(JTree tree, TreePath parent, boolean expand) {
// Traverse children
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);
expandAllNode(tree, path, expand);
}
} if (expand) {
tree.expandPath(parent);
} else {
tree.collapsePath(parent);
}
}调用的时候这样:
expandAllNode(jTree, new TreePath(root), true);其中第二个参数如果是root,则展开树里面所有的节点,如果是其他某个节点,则展开这个节点下面所有的子节点及其下级节点。