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