java - FXML TableView "Class fxmlPerson does not support property "bestellnr"

标签 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);
    }

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

我根据本教程编写了该程序:http://docs.oracle.com/javafx/2/fxml_get_started/fxml_tutorial_intermediate.htm它有效。但一旦我开始添加附加列,我就会收到此错误。

预先感谢您的帮助!

最佳答案

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

名为 bestellnr 的属性必须对应于名称 getBestellnr 的方法和setBestellnr 。你的方法有名字 getBestellNrsetBestellNr 。字母的大小写N就是区别。

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

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

关于java - FXML TableView "Class fxmlPerson does not support property "bestellnr",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43167550/

相关文章:

JavaFX:如果另一个对象处于 Activity 状态,则用于禁用按钮的 FXML 脚本

java - 使用@DefaultProperty时为"Element does not define a default property"

java - 如何基本和简单地设置一个 Servlet 来处理和预处理 JSP 请求

java - 您好,我无法让 public String getGenderName() 输出用户输入的内容

ios - 关于 TableView 中按钮操作的识别部分的问题

iOS - 自定义 UITableViewCell 中的点击识别器无法正常工作

java - sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 处的应用程序启动方法 java.lang.reflect.InitationTargetException 中出现异常

Java 为什么将 long (64) 转换为 float (32) 考虑扩大?

java - N 分钟后绝对 session 过期,即使用户正在使用系统

iphone - 动态数组返回 numberOfRowsInSection 中的计数