【发布时间】:2014-11-11 18:29:31
【问题描述】:
我尝试根据条件取消 ListView 中的用户选择。我试图在 ListView 和 ListCell 中使用鼠标单击和鼠标按下事件,但它不起作用。我不明白为什么在选定项目属性更改后会发生 bu 事件。 如何取消用户选择?
【问题讨论】:
我尝试根据条件取消 ListView 中的用户选择。我试图在 ListView 和 ListCell 中使用鼠标单击和鼠标按下事件,但它不起作用。我不明白为什么在选定项目属性更改后会发生 bu 事件。 如何取消用户选择?
【问题讨论】:
如果我理解正确,您希望阻止用户通过单击来选择项目。我进一步假设您尝试了这样的解决方案:
listView.addEventHandler(MOUSE_CLICKED, click -> click.consume());
这不会阻止执行其他点击处理程序。即使是这样,内部事件处理程序似乎也会在您的事件处理程序之前被触发,因为在执行您的处理程序之前已更改所选项目。
您需要添加一个事件过滤器以防止任何事件处理程序被触发:
listView.addEventFilter(MOUSE_CLICKED, click -> click.consume());
【讨论】:
listView.getSelectionModel().clearSelection();
【讨论】: