我需要澄清Focus
中Selection
和javafx.scene.control.TreeTableView
之间的关系。
在我的代码中,我定义了:
ttvMainTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
假设1:我假设,焦点项始终是左键单击的最后一项。另外我假设左键单击总是移动选择。因此,在SelectionMode.SINGLE
中,焦点项和所选项始终相同。
在90%的情况下,这似乎是正确的。无论如何,在一些随机的左键单击后,我的代码产生了这样的图片:
请确认:
此处可以通过左键单击更改焦点项目,所选项目似乎不受左键单击的影响。
对于不提供SSCCE而道歉。目前我不知道如何缩短我的代码并重现这种行为。
因此一般性问题:
答案 0 :(得分:1)
根据我的拙见,我不认为两者的行为有什么不同,正如你所说,当你选择Node
时,它是一种关系,这一个请求焦点。
可以使用“focusTraversable
”控制焦点:
focusTraversable :指定此节点是否应成为焦点遍历循环的一部分。当此属性为true时,可以使用常规焦点遍历键将焦点移动到此节点并从此节点移动。
对于你的情况,我想也许是因为你选择了TreeTableView
同时是孩子和父Child 2
!
答案 1 :(得分:0)
找到我申请奇怪行为的原因: 选择侦听器导致数据模型的更新。基本上,删除了包含子元素的列表,并使用相同的数据再次填充。这导致了选择模型的混乱。