0

我正在寻找一种在按钮单击时在实际选择的节点之前选择 TreeNode 的方法(如果没有选择节点,则应该选择根节点之后的第一个节点)。我基本上有一个 Hashtable ht 和一个充满节点的 JTree(所有节点都允许子节点)。一旦我单击一个节点,我想在哈希表中查找该对象,系统应该写出类似“你选择了'Object.name'”的内容。然后用户应该能够单击 JButton 并选择单击节点之前的节点。当然,这一行也应该有更新的“Object.name”。也许甚至有一种方法可以更新树的 GUI,以便将另一个 TreeNode 显示为选中状态。

我一直在尝试使用 selectionModel 和 TreeNodes 的 treePath-Methods 很长一段时间(例如,将它们保存在列表中并尝试在之前选择元素),但似乎没有任何效果。我也没有在 Google 或 StackOverflow 上找到任何有用的东西。我在想它可能会以某种方式与 DefaultMutableTreeNode 中的 getPreviousSibling-Method 一起工作?

我尝试的最后一件事:

DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode();
treeNode = (DefaultMutableTreeNode) getLastSelectedPathComponent();
setSelectionPath(new TreePath(((DefaultTreeModel) treeModel).getPathToRoot(treeNode.getPreviousSibling())));

不幸的是,我不断收到 NullPointerException:

空指针异常在这个片段的第 2 行(虽然我之前选择了另一个 TreeNode,但之前有一个兄弟)。

谁能告诉我我做错了什么或告诉我其他方法可能有用吗?:D 如果您需要更多信息,请不要问我。

4

0 回答 0