私は、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 で変更リスナーを追加するにはどうすればよいですか?