我需要澄清一下 javafx.scene.control.TreeTableView
中 Focus
和 Selection
之间的关系。
在我的代码中我定义了:
ttvMainTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
假设 1:我假设焦点项目始终是左键单击的最后一个项目。我还假设左键单击总是移动选择。因此,在 SelectionMode.SINGLE
中,焦点项目和所选项目始终相同。
这在 90% 的情况下似乎都是正确的。无论如何,在随机单击左键之后,我的代码生成了这样的图片:
请确认:
- 蓝色背景的项目是所选项目
- 带有蓝色边框的项目是焦点项目
这里可以通过左键单击来更改焦点项目,所选项目似乎不受左键单击的影响。
很抱歉没有提供 SSCCE 。目前我不知道如何缩短我的代码并重现这种行为。
因此有一个一般性问题:
- 假设 1 有什么问题?
最佳答案
以我的拙见,我认为两者的行为没有区别,正如您所说,当您选择 Node
时,这只是一种关系。 ,这一项请求焦点。
可以使用“focusTraversable
”控制焦点:
focusTraversable : Specifies whether this Node should be a part of focus traversal cycle. When this property is true focus can be moved to this Node and from this Node using regular focus traversal keys.
对于你的情况,我想可能是因为你选择了 TreeTableView
即既是 child 又是 parent Child 2
!
关于JavaFX/TreeTableView : Relationship between Selection and Focus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724669/