10

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

4

1 に答える 1

5

value プロパティは TextField のサブパーツであるため、これを行うことはできません。したがって、コードに記述する必要があります。FXML は、グラフィカルな側面のみを目的としています。FXML の詳細については、次を参照してください。

于 2013-06-28T23:08:39.487 に答える