FXML TableView“类fxmlPerson不支持属性”bestellnr“

时间:2017-04-02 11:04:52

标签: java tableview fxml scenebuilder

所以我现在正在尝试为在线商店实施GUI(为大学分配),我被困在列出所有当前订单的表格中。 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>

“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);
    }

现在每当我尝试运行该项目时,我都会收到错误“类fxmlPerson不支持属性”bestellnr“。

我将此程序基于本教程:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm并且它有效。但是一旦我开始添加其他列,我就会收到此错误。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的FXML文件中使用的属性名称与您的getter和setter的方法名称不匹配。

名称为bestellnr的属性必须与名称为getBestellnrsetBestellnr的方法相对应。您的方法的名称为getBestellNrsetBestellNr。字母N的大写是不同的。

要从属性名称获取getter或setter方法名称,请将第一个字母大写,并将getset放在前面。

将FXML中的属性bestellnr更改为bestellNr,或将getter和setter方法更改为getBestellnrsetBestellnr。对属性名称和方法名称不匹配的其他属性重复此过程。