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
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
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