Я изо всех сил стараюсь понять Учебное пособие Oracle по созданию JavaFX TableView в FXML.Вот оно: https://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm#CACFEHBI
Я все понимаю, кроме самого важного вопроса.Я не могу, на всю жизнь, понять, как cellFactories связаны с данными, то есть как они получают данные.Это код FXML для столбцов:
<columns>
<TableColumn text="First Name">
<cellValueFactory><PropertyValueFactory property="firstName" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Last Name">
<cellValueFactory><PropertyValueFactory property="lastName" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Email Address">
<cellValueFactory><PropertyValueFactory property="email" />
</cellValueFactory>
</TableColumn>
</columns>
В руководстве говорится, что:
"Фабрики ячеек реализуются с помощью класса PropertyValueFactory, который использует firstName, lastName исвойства электронной почты столбцов таблицы как ссылки на соответствующие методы класса Person. "
Методы следующие:
public String getLastName() {
return lastTest.get();
}
public String getFirstName() {
return lastTest.get();
}
public String getEmail() {
return emailTest.get();
}
Как видите, я немного поиграл симена для StringPorperties и полей, чтобы определить, как это работает, и выяснить, что PropertyValueFactory получает свои значения из методов getFirstName () / getLastName () / getEmail ().Если я изменю имена методов, скажем, на getFirstTest (), TableView больше не заполняется, когда я нажимаю кнопку в графическом интерфейсе.
Мой вопрос: как именно эти методы связаны с PropertyValueFactory?учебный класс??Я не могу найти никаких подсказок в коде, просто кажется, что они как-то «знают».
К сожалению, на странице руководства нет объяснений, поэтому, если кто-то из вас сможет это объяснить или укажет мне правильное объяснение, я был бы безмерно благодарен.