将treeNode标记为已选中(Swing)

时间:2015-12-01 17:36:33

标签: java swing jtree

我有一个简单的JTree 我通过setSelectionPath()在代码中设置了它的选定节点。

一切都运行正常,但我想要的是相应的节点(路径的末尾)突出显示,就像用户用鼠标点击它一样,以便树本身也有一个视觉反馈指示选择了哪个节点。

Greetings Raven

编辑:
我希望它看起来如何(就像用鼠标选择节点时的样子一样) Properly highlighted (after selection with mouse)

目前通过程序选择节点后的情况 Current result after selecting node via program

2 个答案:

答案 0 :(得分:1)

聚焦并展开所选节点:

  1. jtree.setScrollsOnExpand(true)

    确定是否 树可能会滚动显示以前隐藏的孩子 如果此属性为true(默认值), 当节点扩展树时可以使用滚动来制作 可见的节点后代的最大可能数量。

  2. jtree.setExpandsSelectedPaths(true)
    允许配置JTree以自动扩展选定的路径 如果您想手动管理,请 您可以使用jtree.setExpandedState(TreePath path, boolean state)方法

答案 1 :(得分:0)

我发现了我的问题:
在选择树所在的窗格时,我正在刷新树的内容 但是,我不是仅仅更新它的节点,而是重新创建了完整的模型,这就是问题所在 我使用的路径是旧模型的路径,这就是为什么在新树中无法正确选择路径的原因。 我转而采用刚更新模型的方法,现在setSelectionPath()具有我想要的效果。