FXML TableView "Class fxmlPerson does not support property "订单号"
FXML TableView "Class fxmlPerson does not support property "bestellnr"
所以我目前正在尝试为在线商店(大学作业)实现 GUI,但我被困在列出所有当前订单的 table 处。
GUI 基于 FXML 应用程序。
我的TableView如下:
<TableView fx:id="tableView" prefHeight="400.0" prefWidth="1250.0" GridPane.columnIndex="0" GridPane.rowIndex="1">
<columns>
<TableColumn text="Bestellnr.">
<cellValueFactory>
<PropertyValueFactory property="bestellnr" />
</cellValueFactory>
</TableColumn>
[7 more columns like that, but with different properties]
</columns>
<items>
<FXCollections fx:factory="observableArrayList">
<Person bestellnr="0001" kundennr="0000" kundenname="John Smith" summe="1000" lieferstatus="gesendet" bestelldatum="03.12.1291" liefertermin="05.12.1291" bezahlt="yes" />
</FXCollections>
</items>
</TableView>
class "Person" 的属性是 SimpleStringProperties
private final SimpleStringProperty bestellnr = new SimpleStringProperty("");
private final SimpleStringProperty kundennr = new SimpleStringProperty("");
private final SimpleStringProperty kundenname = new SimpleStringProperty("");
private final SimpleStringProperty summe = new SimpleStringProperty("");
private final SimpleStringProperty lieferstatus = new SimpleStringProperty("");
private final SimpleStringProperty bestelldatum = new SimpleStringProperty("");
private final SimpleStringProperty liefertermin = new SimpleStringProperty("");
private final SimpleStringProperty bezahlt = new SimpleStringProperty("");
我还向这些 SimpleStringProperties 添加了 getter- 和 setter- 方法:
public String getBestellNr() {
return bestellnr.get();
}
public void setBestellNr(String fName) {
bestellnr.set(fName);
}
public String getKundenNr() {
return kundennr.get();
}
public void setKundenNr(String fName) {
kundennr.set(fName);
}
public String getKundenName() {
return kundenname.get();
}
public void setKundenName(String fName) {
kundenname.set(fName);
}
public String getSumme() {
return summe.get();
}
public void setSumme(String fName) {
summe.set(fName);
}
public String getLieferStatus() {
return lieferstatus.get();
}
public void setLieferStatus(String fName) {
lieferstatus.set(fName);
}
public String getBestellDatum() {
return bestelldatum.get();
}
public void setBestellDatum(String fName) {
bestelldatum.set(fName);
}
public String getLieferTermin() {
return liefertermin.get();
}
public void setLieferTermin(String fName) {
liefertermin.set(fName);
}
public String getBezahlt() {
return bezahlt.get();
}
public void setBezahlt(String fName) {
bezahlt.set(fName);
}
现在每次我尝试 运行 项目时,我都会收到错误 "Class fxmlPerson does not support property "bestellnr"。
我的这个程序基于本教程:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm 并且它有效。但是,一旦我开始添加其他列,我就会收到此错误。
在此先感谢您的帮助!
您的 FXML 文件中使用的 属性 名称与您的 getter 和 setter 的方法名称不匹配。
名称为 bestellnr
的 属性 必须对应于名称为 getBestellnr
和 setBestellnr
的方法。您的方法的名称为 getBestellNr
和 setBestellNr
。字母大小写N
就是区别
要从 属性 名称到 getter 或 setter 方法名称,您将第一个字母大写并将 get
或 set
放在前面.
将 FXML 中的 属性 bestellnr
更改为 bestellNr
,或将 getter 和 setter 方法更改为 getBestellnr
和 setBestellnr
。对 属性 名称和方法名称不匹配的其他属性重复此过程。
所以我目前正在尝试为在线商店(大学作业)实现 GUI,但我被困在列出所有当前订单的 table 处。 GUI 基于 FXML 应用程序。 我的TableView如下:
<TableView fx:id="tableView" prefHeight="400.0" prefWidth="1250.0" GridPane.columnIndex="0" GridPane.rowIndex="1">
<columns>
<TableColumn text="Bestellnr.">
<cellValueFactory>
<PropertyValueFactory property="bestellnr" />
</cellValueFactory>
</TableColumn>
[7 more columns like that, but with different properties]
</columns>
<items>
<FXCollections fx:factory="observableArrayList">
<Person bestellnr="0001" kundennr="0000" kundenname="John Smith" summe="1000" lieferstatus="gesendet" bestelldatum="03.12.1291" liefertermin="05.12.1291" bezahlt="yes" />
</FXCollections>
</items>
</TableView>
class "Person" 的属性是 SimpleStringProperties
private final SimpleStringProperty bestellnr = new SimpleStringProperty("");
private final SimpleStringProperty kundennr = new SimpleStringProperty("");
private final SimpleStringProperty kundenname = new SimpleStringProperty("");
private final SimpleStringProperty summe = new SimpleStringProperty("");
private final SimpleStringProperty lieferstatus = new SimpleStringProperty("");
private final SimpleStringProperty bestelldatum = new SimpleStringProperty("");
private final SimpleStringProperty liefertermin = new SimpleStringProperty("");
private final SimpleStringProperty bezahlt = new SimpleStringProperty("");
我还向这些 SimpleStringProperties 添加了 getter- 和 setter- 方法:
public String getBestellNr() {
return bestellnr.get();
}
public void setBestellNr(String fName) {
bestellnr.set(fName);
}
public String getKundenNr() {
return kundennr.get();
}
public void setKundenNr(String fName) {
kundennr.set(fName);
}
public String getKundenName() {
return kundenname.get();
}
public void setKundenName(String fName) {
kundenname.set(fName);
}
public String getSumme() {
return summe.get();
}
public void setSumme(String fName) {
summe.set(fName);
}
public String getLieferStatus() {
return lieferstatus.get();
}
public void setLieferStatus(String fName) {
lieferstatus.set(fName);
}
public String getBestellDatum() {
return bestelldatum.get();
}
public void setBestellDatum(String fName) {
bestelldatum.set(fName);
}
public String getLieferTermin() {
return liefertermin.get();
}
public void setLieferTermin(String fName) {
liefertermin.set(fName);
}
public String getBezahlt() {
return bezahlt.get();
}
public void setBezahlt(String fName) {
bezahlt.set(fName);
}
现在每次我尝试 运行 项目时,我都会收到错误 "Class fxmlPerson does not support property "bestellnr"。
我的这个程序基于本教程:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm 并且它有效。但是,一旦我开始添加其他列,我就会收到此错误。
在此先感谢您的帮助!
您的 FXML 文件中使用的 属性 名称与您的 getter 和 setter 的方法名称不匹配。
名称为 bestellnr
的 属性 必须对应于名称为 getBestellnr
和 setBestellnr
的方法。您的方法的名称为 getBestellNr
和 setBestellNr
。字母大小写N
就是区别
要从 属性 名称到 getter 或 setter 方法名称,您将第一个字母大写并将 get
或 set
放在前面.
将 FXML 中的 属性 bestellnr
更改为 bestellNr
,或将 getter 和 setter 方法更改为 getBestellnr
和 setBestellnr
。对 属性 名称和方法名称不匹配的其他属性重复此过程。