Java TableView不显示TableColumns
我正在做一个JavaFX应用程序,查看表中数据的结果非常不一致。我的代码如下:Java TableView不显示TableColumns,java,javafx,Java,Javafx,我正在做一个JavaFX应用程序,查看表中数据的结果非常不一致。我的代码如下: @FXML private TableColumn colName, colSurname, colAge, colID, colTF, colEmail; private void initializeTable() { colName.setCellValueFactory(new PropertyValueFactory<Person, String>("name")); colS
@FXML
private TableColumn colName, colSurname, colAge, colID, colTF, colEmail;
private void initializeTable() {
colName.setCellValueFactory(new PropertyValueFactory<Person, String>("name"));
colSurname.setCellValueFactory(new PropertyValueFactory<Person, String>("surname"));
colAge.setCellValueFactory(new PropertyValueFactory<Person, Integer>("age"));
colID.setCellValueFactory(new PropertyValueFactory<Person, String>("dni")); //why this doesn't work????
colTF.setCellValueFactory(new PropertyValueFactory<Person, String>("tf")); //why this doesn't work????
colEmail.setCellValueFactory(new PropertyValueFactory<Person, String>("email"));
// ...
}
该表显示了姓名、姓氏、年龄和电子邮件,但不显示dni或tf。为什么?谢谢@fabian帮我找到答案 问题是,正如@James_D所说 get方法的名称错误。根据PropertyValueFactory文档,如果传入属性名“xyz”,属性值工厂将首先查找属于表行中对象的方法xyzProperty()。如果找不到,它将返回到一个名为getXyz()的方法(仔细查看那里的大小写),将结果包装到ReadOnlyObjectWrapper中 因此,解决方案是将Person的getters中的大小写改为:
public String getDni() {return dni.get();}
public String getTf() {return tf.get();}
问题中发布的代码不足以诊断问题。不过,您可能会在这里找到答案:谢谢@fabian,我将编辑帖子,以放置所有必要的代码,然后是解决方案好您找到了问题的原因:)更好的是,不要使用propertyValueFactory(由于键入错误总是会断开),而是公开数据中已有的属性
public String getDni() {return dni.get();}
public String getTf() {return tf.get();}