我正在将 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 中添加更改侦听器?