Понимание примера Oracle TableView - PullRequest
0 голосов
/ 02 февраля 2019

Я изо всех сил стараюсь понять Учебное пособие 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?учебный класс??Я не могу найти никаких подсказок в коде, просто кажется, что они как-то «знают».

К сожалению, на странице руководства нет объяснений, поэтому, если кто-то из вас сможет это объяснить или укажет мне правильное объяснение, я был бы безмерно благодарен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...