Javafx ListView单选更改和拖动事件
我试图了解ListView中属性更改和鼠标事件的顺序 要检测变化,观察selectedIndex和selectedItem之间是否有区别 要拖放ListView项,注册onDrag.和。。针对ListView和每个ListCell的事件 在更新我观察到的选择模型之前,是否存在接收到onDragDetected事件的场景 谢谢 要检测一个变化,观察 selectedIndex与selectedItem 不是真的;我认为这只是一个你最方便使用的问题 要拖放ListView项,它们之间有什么区别吗 正在注册onDrag。。针对ListView和每个ListCell的事件 我主张在ListCell注册。没有直接的方法可以检查ListView上的鼠标事件,然后确定鼠标事件发生在哪个单元格上。您必须退回到所选项目,这在语义上并不完全相同。例如,如何处理空单元格上的拖动,这不会更改选择 是否存在接收到onDragDetected事件的场景 在我观察的选择模型更新之前 这取决于实现。我认为当前的实现使用一个mousePressed事件来处理选择,虽然我不确定,所以它应该在检测到拖动之前触发,但是您真的希望该实现在未来的版本中不会改变吗Javafx ListView单选更改和拖动事件,javafx,javafx-8,Javafx,Javafx 8,我试图了解ListView中属性更改和鼠标事件的顺序 要检测变化,观察selectedIndex和selectedItem之间是否有区别 要拖放ListView项,注册onDrag.和。。针对ListView和每个ListCell的事件 在更新我观察到的选择模型之前,是否存在接收到onDragDetected事件的场景 谢谢 要检测一个变化,观察 selectedIndex与selectedItem 不是真的;我认为这只是一个你最方便使用的问题 要拖放ListView项,它们之间有什么区别吗 正
依我看,依赖所选的项目在这里感觉是不对的。它在语义上与您想要的不同:您实际上想要知道用户单击了哪个项目,而不是选择了哪个项目。当然,这两者是相关的,但它们不是同一件事,因此在某种程度上,您将引入对选择API的依赖,该依赖应该独立于您试图实现的事情。不过,这绝对是一种观点。您的里程数可能会有所不同……我同意。此外,BehaviorSkinBase还定义了鼠标事件处理程序和ListViewBehavior处理程序mousePressed,用于更新选择模型和焦点。场景中包含了dnd的内容,看起来这个手势可以在鼠标按下的事件中启动。