JavaFX cerca di abilitare l'MVC-Pattern. Il modello deve essere creato con Proprietà per sfruttare il collegamento. Nel tuo caso il Modello è la classe Persona, quindi puoi semplicemente aggiungere il nomePreciso a StringProperty. Ma in JavaFX devi occuparti delle altre convenzioni di denominazione come getter e setter semplici in un Pojo Bean.
Naming Convention per Properties in JavaFX sono:
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;
}
}
Dopo di che è in grado di legarsi ad esempio, un TableColumn di un TableView alla proprietà "cognome"
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"));
Senza una proprietà presente sarebbe molto più codice e non avrai i vantaggi del supporto implementato ChangeListener/InvalidationListener.
L'esempio viene da JavaFX TableView
Quindi il modo consigliato nella realizzazione di un modello per JavaFX sta usando JavaFX-Properties e non la configurazione in tipi.
direttamente alla spiegazione del punto !!! – JWizard