我有一个ListView,并希望使用箭头键禁用遍历,以便只有MouseEvent
才能更改所选项目。我打算使用TraversalEngine
,但似乎已经弃用了。防止遍历的最佳方法是什么?我知道我可以做ListView.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>)
,但我不确定如何阻止遍历...
答案 0 :(得分:1)
我想你可以试试这个:
listView.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
event.consume();
}
});
答案 1 :(得分:0)
标记为正确的答案似乎不适用于我,但我发现使用事件过滤器可以成功,如下面的简单示例代码所示。
ObservableList<String> items = FXCollections.observableArrayList("foo", "bar");
ListView<String> listView = new ListView<>(items);
listView.addEventFilter(KeyEvent.ANY, Event::consume);