Javafx TreeCell键事件未触发

Javafx TreeCell键事件未触发,javafx,treeview,javafx-8,keyevent,Javafx,Treeview,Javafx 8,Keyevent,我与CellFactory有TreeView控件: tVMain.setCellFactory(new Callback<TreeView<ITVItem>, TreeCell<ITVItem>>() { @Override public TreeCell<ITVItem> call(TreeView<ITVItem> p) { return new Tex

我与CellFactory有TreeView控件:

tVMain.setCellFactory(new Callback<TreeView<ITVItem>, TreeCell<ITVItem>>()
    {
        @Override
        public TreeCell<ITVItem> call(TreeView<ITVItem> p)
        {
            return new TextFieldTreeCellImpl();
        }
    });

而不是OnKeyReleased,但仍然不起作用。

TextField
s通常使用它们处理的关键事件。尝试添加一个事件筛选器:
this.addEventFilter(按下KeyEvent.KEY,e->{/*something*/})
keyevents被传递到聚焦节点(aka:focusOwner of scene)——该节点永远不是单元格,而是文本字段(编辑时)或表格(不编辑时)。更多信息:
    private static class TextFieldTreeCellImpl extends TextFieldTreeCell<ITVItem>
        {
private TextField textField;
            public TextFieldTreeCellImpl()
            {
                this.setOnKeyPressed((e) -> {
                    startEdit();
                });
            }

public void startEdit()
        {
            super.startEdit();
            if (textField == null)
            {
                textField = new TextField();
            }
            textField.setText(getString());
            setText(null);
            setGraphic(textField);
            textField.selectAll();
            textField.requestFocus();
        }

@Override
        public void cancelEdit()
        {
            super.cancelEdit();
            setText(((ITVItem) getItem()).toString());
            setGraphic(getTreeItem().getGraphic());
        }

        }
this.addEventFilter(KeyEvent.KEY_PRESSED, e -> {

                //SOMETHING

            });