JavaFX TableView未填充

JavaFX TableView未填充,java,javafx-2,tableview,Java,Javafx 2,Tableview,在Java8中使用JavaFX2和NetBeansIDE8.0。 我正在从FileMaker数据库中提取数据,并将其作为“票证”对象添加到observableArrayList(此处称为“行”)。然后,我将该列表传递到表中,以显示已发现的内容。 我已经填充了observearraylist,但无法在表中显示它 我在FXML中内置了表视图: <TableView fx:id="ticketData" layoutX="-3.0" layoutY="351.0" prefHeight="203

在Java8中使用JavaFX2和NetBeansIDE8.0。 我正在从
FileMaker
数据库中提取数据,并将其作为“票证”对象添加到
observableArrayList
(此处称为“行”)。然后,我将该列表传递到表中,以显示已发现的内容。 我已经填充了
observearraylist
,但无法在表中显示它

我在FXML中内置了表视图:

<TableView fx:id="ticketData" layoutX="-3.0" layoutY="351.0" prefHeight="203.0" prefWidth="554.0">
                       <columns>
                          <TableColumn fx:id="ticket" editable="false" prefWidth="59.0" text="Ticket" />
                          <TableColumn fx:id="dates" prefWidth="72.0" text="Date(s)" />
                          <TableColumn fx:id="files" editable="false" prefWidth="114.0" text="File(s) Found" />
                          <TableColumn fx:id="notes" prefWidth="297.0" text="Notes" />
                       </columns>
                    </TableView>
在完成对所需内容的搜索后,我在控制器中设置我的
表视图
(“此处为ticketData”),以保存项目,每列都有一个与票证类相关的
CellValueFactory

ticketData = new TableView();

           ticket.setCellFactory(TextFieldTableCell.forTableColumn());
        ticket.setCellValueFactory(
                new PropertyValueFactory<>("ticketType"));


           dates.setCellFactory(TextFieldTableCell.forTableColumn());
           dates.setCellValueFactory(
                new PropertyValueFactory<>("executionDate"));

           files.setCellFactory(TextFieldTableCell.forTableColumn());
           files.setCellValueFactory(
                new PropertyValueFactory<>("gotFile"));

           notes.setCellFactory(TextFieldTableCell.forTableColumn());
           notes.setCellValueFactory(
                new PropertyValueFactory<>("statusMessage"));

        ticketData.getColumns().addAll(ticket,dates,files,notes);
        //System.out.println(Arrays.deepToString(row.toArray()));

        ticketData.setItems(row);

ticketData=newtableview();
ticket.setCellFactory(TextFieldTableCell.forTableColumn());
ticket.setCellValueFactory(
新的PropertyValueFactory(“ticketType”);
dates.setCellFactory(TextFieldTableCell.forTableColumn());
dates.setCellValueFactory(
新财产价值工厂(“执行日期”);
setCellFactory(TextFieldTableCell.forTableColumn());
files.setCellValueFactory(
新的PropertyValueFactory(“gotFile”);
notes.setCellFactory(TextFieldTableCell.forTableColumn());
notes.setCellValueFactory(
新的PropertyValueFactory(“statusMessage”);
ticketData.getColumns().addAll(票证、日期、文件、注释);
//System.out.println(Arrays.deepToString(row.toArray());
ticketData.setItems(行);
我可以在
observearraylist
上打印并查看其中的条目,但是
tableview
仍然为空

有什么建议吗?我错过什么了吗?我不知所措。

属性值工厂(“TicketType”)
应该是TicketType,注意小写。所有字段都相同


我本来就是这样的,但它不起作用。刚刚把它改回来,看看它是否会有什么不同,什么都没有。我的tableview仍然是空的:(可能你没有从数据库中获取数据。在数据进入observableArrayList和传递到tableview之前,我已经打印了数据。那里肯定有数据,这是令人恼火的部分。
ticketData=new tableview()
不应该在那里。这就是为什么你需要一个SSCE供人们测试。我不知道它在哪里声明,但应该在某处有一个
@FXML TableView ticketData
声明。你正在创建一个新表,而不是使用在FXML中创建的表。你使用的列和其他每一个FXML结构也是如此。我对所有
TextFieldTableCell
没有字符串转换器,但这是另一个问题。您正在使用
ticketData=newTableView()
创建一个新的
TableView
,然后填充该表,而不是FXML中的表。这是
public void accumulate(String type, Date essential, boolean got, String msg)
    {
        Ticket ticket;
        ticket = new Ticket(type, essential, got, msg);
        row.add(ticket);
    }
ticketData = new TableView();

           ticket.setCellFactory(TextFieldTableCell.forTableColumn());
        ticket.setCellValueFactory(
                new PropertyValueFactory<>("ticketType"));


           dates.setCellFactory(TextFieldTableCell.forTableColumn());
           dates.setCellValueFactory(
                new PropertyValueFactory<>("executionDate"));

           files.setCellFactory(TextFieldTableCell.forTableColumn());
           files.setCellValueFactory(
                new PropertyValueFactory<>("gotFile"));

           notes.setCellFactory(TextFieldTableCell.forTableColumn());
           notes.setCellValueFactory(
                new PropertyValueFactory<>("statusMessage"));

        ticketData.getColumns().addAll(ticket,dates,files,notes);
        //System.out.println(Arrays.deepToString(row.toArray()));

        ticketData.setItems(row);