Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择之前的TreeNode(java swing,tree)_Java_Swing_Jtree_Treenode_Defaultmutabletreenode - Fatal编程技术网

选择之前的TreeNode(java swing,tree)

选择之前的TreeNode(java swing,tree),java,swing,jtree,treenode,defaultmutabletreenode,Java,Swing,Jtree,Treenode,Defaultmutabletreenode,我正在寻找一种方法,在单击按钮时,在实际选择的节点(如果未选择任何节点,则应选择根节点后的第一个节点)之前选择TreeNode。我基本上有一个哈希表ht和一个充满节点的JTree(所有节点都允许子节点)。 单击一个节点后,我想在哈希表中查找该对象,系统应该编写类似“您选择了‘Object.name’”的内容。然后,用户应该能够单击JButton并在单击的节点之前选择节点。当然,这一行也应该有一个更新的“Object.name”。也许甚至有一种方法可以更新树的GUI,从而使另一个树节点显示为选中

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

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

我最后一次尝试:

DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode();
treeNode = (DefaultMutableTreeNode) getLastSelectedPathComponent();
setSelectionPath(new TreePath(((DefaultTreeModel) treeModel).getPathToRoot(treeNode.getPreviousSibling())));
不幸的是,我一直收到一个NullPointerException:

在这段代码的第2行中(尽管我之前选择了另一个TreeNode,但它之前有一个兄弟节点)


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

欢迎来到StackOverflow!某些用户无法跟踪图像的链接。如果您需要帮助,请使用上面的链接将代码直接复制到您的问题中。谢谢,现在编辑问题。