JavaFX пытается включить MVC-шаблон. Модель должна быть создана с помощью свойств, чтобы воспользоваться Связыванием. В вашем случае модель представляет собой класс Person, поэтому вы можете просто добавить имяStringProperty firstName. Но в JavaFX вы должны позаботиться о другом соглашении об именах, как для простого getter и setter в Bejo Pojo.
Naming Convention для Properties в JavaFX являются:
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;
}
}
После этого вы сможете связать, например, TableColumn в виде TableView в собственности "LastName"
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"));
Без этой недвижимости будет намного больше кода, и у вас не будет преимуществ реализованной поддержки ChangeListener/InvalidationListener.
В приведенном выше примере происходит от JavaFX TableView
Таким образом, рекомендуемый способ сделать модель для JavaFX использует JavaFX-свойства, а не строить в типах.
прямо к описанию точки !!! – JWizard