如何使用箭头键使列表视图单元格不可遍历?

时间:2015-06-05 15:31:51

标签: listview javafx javafx-2 javafx-8

我有一个ListView,并希望使用箭头键禁用遍历,以便只有MouseEvent才能更改所选项目。我打算使用TraversalEngine,但似乎已经弃用了。防止遍历的最佳方法是什么?我知道我可以做ListView.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>),但我不确定如何阻止遍历...

2 个答案:

答案 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);