Bidirektionale JavaFX-Bindung funktioniert nicht, wenn das Steuerelement nicht mehr bearbeitet werden kann
Geben Sie eine sehr elementare Klasse an (Importe, die in Javafx-Pakete aufgelöst wurden):
public class T07 extends Application implements Initializable{
Einige Felder stellen Steuerelemente dar, die in einer .fxml-Datei definiert sind:
@FXML TextField text01;
und ein Datenmodell, das Property-Wrapper auf einfachste Weise verwendet:
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;}
}
Ich versuche, das UI-Steuerelement mit dem Datenmodell in der Initialisierung zu binden:
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
Bindings.bindBidirectional(text01.textProperty(), dm.firstProperty());
}
aber so zu tun,Ich bekomme ein nicht editierbares Steuerelement. Wenn Sie die Bindings.bindBidirectional-Zeile auskommentieren, kann das Steuerelement normalerweise bearbeitet werden und auf seinen Wert kann über das Feld text01 zugegriffen werden.
Was ist die fehlende Zutat in diesem verbindlichen Rezept?