我正在竭尽全力来理解Oracle的教程,该教程关于如何在FXML中创建JavaFX TableView。就是这个: https://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm#CACFEHBI
除了最重要的问题外,我什么都明白。我不能,我的生活,弄不清cellFactories如何连接到数据,I,E,他们是如何获得这些数据。这是列的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类,它使用名字,姓氏,并且该表列作为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(),则在按GUI中的按钮时,不再填充TableView。
我的问题是:这些方法到底如何连接到PropertyValueFactory类?我在代码中找不到任何线索,似乎它们以某种方式“知道”。
不幸的是,教程页面上没有任何解释,因此,如果你们中的任何人可以解释这一点或将我指出正确的解释,我将非常感激。