JavaFX / TreeTableView:选择和焦点之间的关系
JavaFX / TreeTableView: Relationship between Selection and Focus
我需要澄清一下 javafx.scene.control.TreeTableView
中 Focus
和 Selection
之间的关系。
在我的代码中我定义了:
ttvMainTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
假设 1:我假设焦点项目始终是左键单击的最后一个项目。我还假设左键单击总是移动选择。因此在 SelectionMode.SINGLE
中,焦点项目和所选项目始终相同。
这在 90% 的情况下似乎都是正确的。无论如何,在我的代码随机左键点击后产生了这样一张图片:
请确认:
- 蓝色背景的项目是选中的项目
- 带蓝色边框的项目是焦点项目
这里可以用鼠标左键改变焦点项目,选中的项目似乎不受鼠标左键的影响。
很抱歉没有提供SSCCE。目前我不知道如何缩短我的代码并重现这种行为。
因此一个普遍的问题:
- 假设 1 有什么问题?
以我的愚见,我认为两者的行为没有区别,就像你所说的 关系,当你 select一个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
!
找到我的应用程序异常行为的原因:
选择侦听器导致数据模型更新。基本上带有 child-elements 的列表被删除并再次填充了相同的数据。这导致了选择模型的混乱。
我需要澄清一下 javafx.scene.control.TreeTableView
中 Focus
和 Selection
之间的关系。
在我的代码中我定义了:
ttvMainTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
假设 1:我假设焦点项目始终是左键单击的最后一个项目。我还假设左键单击总是移动选择。因此在 SelectionMode.SINGLE
中,焦点项目和所选项目始终相同。
这在 90% 的情况下似乎都是正确的。无论如何,在我的代码随机左键点击后产生了这样一张图片:
请确认:
- 蓝色背景的项目是选中的项目
- 带蓝色边框的项目是焦点项目
这里可以用鼠标左键改变焦点项目,选中的项目似乎不受鼠标左键的影响。
很抱歉没有提供SSCCE。目前我不知道如何缩短我的代码并重现这种行为。
因此一个普遍的问题:
- 假设 1 有什么问题?
以我的愚见,我认为两者的行为没有区别,就像你所说的 关系,当你 select一个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
!
找到我的应用程序异常行为的原因: 选择侦听器导致数据模型更新。基本上带有 child-elements 的列表被删除并再次填充了相同的数据。这导致了选择模型的混乱。