Javafx 返回Denteredon; } 公共void setDenteredon(字符串d){ Denteredon=d; } 公共字符串getCDesc(){ 返回CDesc; } 公共无效集合CDESC(字符串c){ CDesc=c; } } }

Javafx 返回Denteredon; } 公共void setDenteredon(字符串d){ Denteredon=d; } 公共字符串getCDesc(){ 返回CDesc; } 公共无效集合CDESC(字符串c){ CDesc=c; } } },javafx,tableview,Javafx,Tableview,这个问题实际上与:,是重复的,但我会特别针对您的具体情况,所以很清楚 背景 使用反射确定从模型类获取和设置数据值以及检索可绑定属性的方法。其模式如下: PropertyValueType getName() void setName(PropertyValueType value) PropertyType nameProperty() 其中“name”是在PropertyValueFactory构造函数中指定的字符串。getter和setter中属性名的第一个字母大写(根据JavaBean命

这个问题实际上与:,是重复的,但我会特别针对您的具体情况,所以很清楚

背景

使用反射确定从模型类获取和设置数据值以及检索可绑定属性的方法。其模式如下:

PropertyValueType getName()
void setName(PropertyValueType value)
PropertyType nameProperty()
其中“name”是在PropertyValueFactory构造函数中指定的字符串。getter和setter中属性名的第一个字母大写(根据JavaBean命名约定)

为什么你的应用程序不工作

你有以下三种表达方式:

new PropertyValueFactory<sresult, String>("DateEntered")
new PropertyValueFactory<sresult, String>("cDesc")
new PropertyValueFactory<sresult, String>("CreatedBy")
您的
sresult
类中有三个getter:

getDateEntered()
getcDesc()
getEnteredBy()
PropertyValueFactory只拾取
getDateEntered()
,因为这是
sresult
类中定义的唯一匹配方法

忠告

如果希望PropertyValueFactory中的反射正常工作,则必须采用Java标准(另一种选择是不使用PropertyValueFactory,而是从头开始编写自己的单元工厂)


采用也使Java开发人员更容易阅读您的代码。

对于其他在阅读了上述内容后仍然没有获得代码的人,我的问题是我没有使用“public final”名称指定我的setter。

有些时候,由于列名的原因,列不显示数据。例如

new PropertyValueFactory<sresult, String>("cDesc")

getter
getCDesc-CDesc
列可以显示数据。

@jewelsea您能解释一下如何创建我的单元格工厂吗?这是我的问题,我在这里挣扎了一周,因为程序运行时没有出现错误,并且没有在表中显示数据!!您不必创建自己的单元格值工厂,只需设置
col.setCellValueFactory(features->features.getValue().colProperty())如果您的属性由模型类公开。不完全确定您的意思-但不需要“final”修饰符..final不是必需的,但他提出了一个关于getter需要公开的观点。否:列名与此无关-重要的是属性名。。请阅读PropertyValue工厂的api文档。您尝试回答这个问题很好,但是:要精确,格式化代码并坚持java命名约定。
new PropertyValueFactory<sresult, String>("DateEntered")
new PropertyValueFactory<sresult, String>("cDesc")
new PropertyValueFactory<sresult, String>("CreatedBy")
"DateEntered" => getDateEntered()
"cDesc" => getCDesc()
"CreatedBy" => getCreatedBy()
getDateEntered()
getcDesc()
getEnteredBy()
new PropertyValueFactory<sresult, String>("cDesc")
new PropertyValueFactory<sresult, String>("CDesc")