Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/jquery-mobile/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx ListView单选更改和拖动事件_Javafx_Javafx 8 - Fatal编程技术网

Javafx ListView单选更改和拖动事件

Javafx ListView单选更改和拖动事件,javafx,javafx-8,Javafx,Javafx 8,我试图了解ListView中属性更改和鼠标事件的顺序 要检测变化,观察selectedIndex和selectedItem之间是否有区别 要拖放ListView项,注册onDrag.和。。针对ListView和每个ListCell的事件 在更新我观察到的选择模型之前,是否存在接收到onDragDetected事件的场景 谢谢 要检测一个变化,观察 selectedIndex与selectedItem 不是真的;我认为这只是一个你最方便使用的问题 要拖放ListView项,它们之间有什么区别吗 正

我试图了解ListView中属性更改和鼠标事件的顺序

要检测变化,观察selectedIndex和selectedItem之间是否有区别

要拖放ListView项,注册onDrag.和。。针对ListView和每个ListCell的事件

在更新我观察到的选择模型之前,是否存在接收到onDragDetected事件的场景

谢谢

要检测一个变化,观察 selectedIndex与selectedItem

不是真的;我认为这只是一个你最方便使用的问题

要拖放ListView项,它们之间有什么区别吗 正在注册onDrag。。针对ListView和每个ListCell的事件

我主张在ListCell注册。没有直接的方法可以检查ListView上的鼠标事件,然后确定鼠标事件发生在哪个单元格上。您必须退回到所选项目,这在语义上并不完全相同。例如,如何处理空单元格上的拖动,这不会更改选择

是否存在接收到onDragDetected事件的场景 在我观察的选择模型更新之前

这取决于实现。我认为当前的实现使用一个mousePressed事件来处理选择,虽然我不确定,所以它应该在检测到拖动之前触发,但是您真的希望该实现在未来的版本中不会改变吗


依我看,依赖所选的项目在这里感觉是不对的。它在语义上与您想要的不同:您实际上想要知道用户单击了哪个项目,而不是选择了哪个项目。当然,这两者是相关的,但它们不是同一件事,因此在某种程度上,您将引入对选择API的依赖,该依赖应该独立于您试图实现的事情。不过,这绝对是一种观点。您的里程数可能会有所不同……

我同意。此外,BehaviorSkinBase还定义了鼠标事件处理程序和ListViewBehavior处理程序mousePressed,用于更新选择模型和焦点。场景中包含了dnd的内容,看起来这个手势可以在鼠标按下的事件中启动。