非常に基本的なクラスを指定します (インポートは javafx パッケージに解決されます)。
public class T07 extends Application implements Initializable{
.fxml ファイルで定義されたコントロールを表すいくつかのフィールド:
@FXML TextField text01;
最も基本的な方法でプロパティ ラッパーを使用するデータ モデル:
public static class DataModel {
StringProperty first = new SimpleStringProperty();
//getter
public String getFirst() {return first.get();}
//setter
public void setFirst(String first) {this.first.set(first);}
//new "property" accessor
public StringProperty firstProperty() {return first;}
}
初期化内でUIコントロールをデータモデルにバインドしようとしました:
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
Bindings.bindBidirectional(text01.textProperty(), dm.firstProperty());
}
しかし、そうすると、編集不可能なコントロールが得られます。Bindings.bindBidirectional 行をコメントアウトすると、コントロールは通常どおり編集可能になり、その値は text01 フィールドからアクセスできます。
このバインディングレシピに欠けている成分は何ですか?