- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了同样描述的问题 here .
我在 MyTree
类中有 invertExpand
方法,它的工作方式如下:
public void invertExpand(DefaultMutableTreeNode node) {
TreePath path = new TreePath(node.getPath()); // no better way to get TreePath from TreeNode :(
if (!isExpanded(path)) {
expandPath(path);
} else {
collapsePath(path);
}
}
但问题是 isExpanded()
方法使用 HashMap
来存储扩展路径。似乎 isExpanded()
从未为新创建的 TreePath
返回 true
。 (但他们真的扩大了)
有什么办法可以解决这个问题吗?
最佳答案
展开/折叠适用于非叶节点,因此请确保所讨论的节点不是叶节点:
public void invertExpand(DefaultMutableTreeNode node) {
if (node.isLeaf())
node = (DefaultMutableTreeNode) node.getParent();
TreePath path = new TreePath(node.getPath()); // no better way to get TreePath from TreeNode :(
if (isExpanded(path)) {
collapsePath(path);
} else {
expandPath(path);
}
}
编辑(根据OP的评论)
不当行为的真正原因是在自定义节点中错误地实现了 hasCode,这混淆了 Map(存储扩展路径的地方)。
关于java - JTree:TreeNode 和 TreePath 之间缺少链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703470/
由于 TreePath 用于识别数据节点的方法,我无法让 Outline 控件(替代 TreeTable)处理数据对象树。 关键问题是TreePath的equals()方法是通过数据节点的equals
我正在使用 Java。我有一组来自JTree 的Treepaths。现在我想从中创建一个 JTree。谁能解释一下它是如何实现的? 例子: 根 颜色 红色 绿色 动物 猫 老鼠 我的路径来自 Root
虽然将树路径滚动到可见的实现起来很简单,但我想知道是否也可以滚动到路径而不干扰水平滚动条的状态或通过重置其值而不会闪烁。 import java.awt.BorderLayout; import ja
有什么简单的方法可以从 TreePath 获取 File(或 java.nio.file.Path,就此而言) ? 例如,您有一个像这样的 JTree: Green |---Blue |---Red
我遇到了同样描述的问题 here . 我在 MyTree 类中有 invertExpand 方法,它的工作方式如下: public void invertExpand(DefaultMutableTr
如何从选定的 TreePath 中获取相应的 XPath 查询字符串? a |-b +-c |-b +-d 如果我选择“d”,我想要得到类似/a/b[2]/d 的内容 编辑:现在我想循环遍历
我有一个 Swing TreeNode (DefaultMutableTreeNode),并且必须为每个 Swing TreeNode 生成一个 Apache Tobago TreePath: Swi
从 Java API 来看,JTree 的节点似乎是 TreeNode 的实例。此外,返回的所有 TreePath 似乎都是 TreeNode 的实例。那么,为什么 TreePaths 由 Objec
我一直在学习使用 TreeView,这两种类型通常用于访问树的特定行。我真的不明白两者之间的区别。我的代码正在运行——我根据函数所需的参数在两者之间来回转换——但不是基于对原因的任何真正理解。 这两种
我是一名优秀的程序员,十分优秀!