我有一个包含以下单元格工厂的列表视图:
availableSymbolsTable.setCellFactory(lv -> {
ListCell<Symbol> cell = new ListCell<Symbol>() {
@Override
protected void updateItem(Symbol t, boolean empty) {
super.updateItem(t, empty);
if (empty) {
setText(null);
} else {
setText(t.getSymbolName());
}
}
};
cell.setOnKeyPressed(e ->
{
//This never fires
}
);
cell.setOnMouseEntered(e -> {
//This works
});
cell.setOnMouseClicked(e -> {
if (cell.getItem() != null) {
if(e.getClickCount() == 2)
{
//This works
}
}
});
return cell ;
} );
我以相同的方式添加了3个事件句柄。 OnMouseEntered和OnMouseClicked都按预期工作。但是,永远不会执行OnKeyPressed。 OnKeyReleased也是如此。按箭头键时,列表视图会按预期更改所选行,但我的事件处理程序代码永远不会执行。什么似乎是问题?