Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TableView不显示TableColumns_Java_Javafx - Fatal编程技术网

Java TableView不显示TableColumns

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

我正在做一个JavaFX应用程序,查看表中数据的结果非常不一致。我的代码如下:

@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"));
    // ...
}

该表显示了姓名姓氏年龄电子邮件,但不显示dnitf。为什么?

谢谢@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();}