JavaFX versucht, das MVC-Muster zu ermöglichen. Das Modell sollte mit Eigenschaften erstellt werden, um die Bindung zu nutzen. In Ihrem Fall ist das Modell die Person-Klasse, Sie können also einfach StringProperty firstName hinzufügen. Aber in JavaFX musst du dich um die anderen Namenskonventionen kümmern wie um einfache Getter und Setter in einem Pojo Bean.
Naming Convention für Properties in JavaFX sind:
public class Person {
private StringProperty firstName;
public void setFirstName(String value) { firstNameProperty().set(value); }
public String getFirstName() { return firstNameProperty().get(); }
public StringProperty firstNameProperty() {
if (firstName == null) firstName = new SimpleStringProperty(this, "firstName");
return firstName;
}
private StringProperty lastName;
public void setLastName(String value) { lastNameProperty().set(value); }
public String getLastName() { return lastNameProperty().get(); }
public StringProperty lastNameProperty() {
if (lastName == null) lastName = new SimpleStringProperty(this, "lastName");
return lastName;
}
}
Danach können Sie zum Beispiel eine Table eines Tableview auf die Eigenschaft „Nachname“
TableView<Person> table = new TableView<Person>();
ObservableList<Person> teamMembers = getTeamMembers();
table.setItems(teamMembers);
TableColumn<Person,String> lastNameCol = new TableColumn<Person,String>("Last Name");
lastNameCol.setCellValueFactory(new PropertyValueFactory("lastName"));
Ohne Eigentum diese binden können, wäre viel mehr Code und Sie werden nicht die Vorteile der implementierten ChangeListener/InvalidationListener Unterstützung haben.
Das obige Beispiel stammt aus JavaFX TableView
So ist der empfohlene Weg, um ein Modell für JavaFX wird bei der Herstellung mit JavaFX-Eigenschaften und nicht die Build-in-Typen.
direkt zur Erklärung der Punkte !!! – JWizard