ChangeListener的等效FXML属性?

时间:2013-06-28 15:54:08

标签: javafx-2

我正在将JavaFX应用程序转换为在Java代码中声明/配置其控件,以将布局拆分为FXML配置。我遇到的问题是我找不到代码的ChangeListener的等效属性(?)。

在原始Java代码中,我有

    class TextFieldChangeListener implements ChangeListener<String> {
        private  boolean isRequiredDataPresent() {
            return outputNameTextField.getText().length() > 0 && numOfOutputFilesTextField.getText().length() > 0;
        }

        @Override
        public void changed( ObservableValue<? extends String> observableValue, String s, String s2 ) {
            mergeButton.setDisable( ! isRequiredDataPresent() );
        }
    }  

关于我可以使用FXML最接近的是:

<TextField id="outputNameTextField" onKeyPressed="#textBoxOnChange" promptText="Path of merge file" GridPane.columnIndex="1" GridPane.rowIndex="3" GridPane.columnSpan="2" GridPane.rowSpan="1" />

使用onKeyPressed的问题在于它不会像ChangeListener那样粘贴在值中。如何在FXML中添加更改侦听器?

1 个答案:

答案 0 :(得分:5)

您不能这样做,因为value属性是TextField的子部分。所以你必须在你的代码中写它。 FXML仅用于图形方面。 有关FXML的更多信息: