JavaFX Scene aktuallisieren?
Wie aktuallisiert man in JavaFX eine Scene, wenn sich der Wert einer Variable geändert hat?
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java, Informatik
Praktischerweise eignet sich hier die Nutzung von Properties.
Einmal angenommen, du hast diese Model-Klasse:
public class Person {
private final StringProperty name = new SimpleStringProperty("Klaus");
public StringProperty nameProperty() {
return name;
}
public final String getName() {
return nameProperty().get();
}
public final void setName(String name) {
nameProperty().set(name);
}
}
Im Controller oder im View würdest du dann ein Binding zu der Komponente vornehmen, die die Daten präsentiert.
Beispiel:
public class YourController {
@FXML
private Label nameLabel;
private final Person person;
public YourController(final Person person) {
this.person = person;
}
@FXML
public void initialize() {
nameLabel.textProperty().bind(person.nameProperty());
}
}
Oder als Expression im FXML:
<Label text="${controller.person.nameProperty}" />
Sobald dein Property seinen Wert ändert, bewirkt das Binding eine automatische Aktualisierung des View.
Entsprechende Property-Typen gibt es für alle möglichen Grundtypen:
- SimpleBooleanProperty
- SimpleDoubleProperty
- SimpleFloatProperty
- SimpleIntegerProperty
- SimpleListProperty
- SimpleLongProperty
- SimpleMapProperty
- SimpleObjectProperty
- SimpleSetProperty
- SimpleStringProperty