How to use the PropertyValueFactory correctly?

java, javafx-2, tableview

Solution

The answer is about attention, which string content you give as parameter of `PropertyValueFactory`, and which methods are implemented in your encapsulated data type.

Instantiation :

new PropertyValueFactory<User, String>("name")

will lookup for :

User.nameProperty()

Problem

I am trying to make a table with a TableView and fill it programmatically based on a list of `User` objects. The `User` has three variables, `nameProperty` (String), `rankProperty` (Enum called Rank), and `netMeritsProperty` (int). These are all stored in `SimpleStringProperty` objects. My problem is that the data will not appear in the actual table, as shown here: Here is my code for the table. What am I not understanding? ``` TableColumn<User, String> name = new TableColumn<>("Name"); name.setCellValueFactory(new PropertyValueFactory<User, String>("nameProperty")); TableColumn<User, String> rank = new TableColumn<>("Rank"); rank.setCellValueFactory(new PropertyValueFactory<User, String>("rankProperty")); TableColumn<User, String> netMerits = new TableColumn<>("Net Merits"); netMerits.setCellValueFactory(new PropertyValueFactory<User, String>("netMeritsProperty")); userTable.getColumns().addAll(name, rank, netMerits); ```

Original source