我有一个JTree(myTree),在另一个类中,我有一个从myTree中获取的DefaultMutableTreeNode.
在某个函数中,我希望JTree突出显示该节点.
我试过了:
myTree.setSelectionPath(new TreePath(treeNode));
但在视觉上没有任何事情发生.
有任何想法吗?
更新:
我还有另一个JTable,它基于myTree中选定的treeNode进行渲染.该表正在正确更新.只是myTree拒绝直观更新.
解决方法:
您需要使用节点的实际树路径.不只是TreePath的一个实例:
myTree.setSelectionPath(new TreePath(treeModel.getPathToRoot(treeNode)));
此外,javadoc说:
If any component of the path is hidden (under a collapsed node), and getExpandsSelectedPaths is true it is exposed (made viewable)
因此,请确保getExpandsSelectedPaths为true.
标签:jtree,java,swing
来源: https://codeday.me/bug/20190726/1540320.html