对TableCell焦点更改的commitEdit

时间:2014-05-28 01:18:27

标签: javafx-8 tablecell

我打算在单击TableView上的其他位置时在TableCell上提交更改。这是我在Oracle教程中实现的createTextField方法。

private void createTextField() {
    textField.setText(getString());
    textField.setMinWidth(this.getWidth() - this.getGraphicTextGap() * 2);
    textField.addEventFilter(KeyEvent.KEY_PRESSED, (KeyEvent t) -> {
        if (t.getCode() == KeyCode.ENTER || t.getCode() == KeyCode.TAB) {
            commitEdit(textField.getText());
        } else if (t.getCode() == KeyCode.ESCAPE) {
            cancelEdit();
        }
    });

    textField.focusedProperty().addListener((ObservableValue<? extends Boolean> ov, Boolean t0, Boolean t1) -> {
        if(!t1) 
             commitEdit(textField.getText());
    });
}

当我点击其他一些tablecell时,更新的字符串不会反映出来。我使用的是Java 8b123。

0 个答案:

没有答案