繁体   English   中英

如何在FXML控制器中填充javafx.TableView?

[英]How to fill javafx.TableView in FXML controller?

我想用控制器中的列填充TableView,但是我不知道为什么我的解决方案不起作用。

在fxml中,我要填充的元素如下所示:

<right>
    <TableView id="datesTableView">
    </TableView>
</right>

在控制器中:

public class ProjectController implements Initializable {

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    LocalDate first = p.getStartDate(); 
    LocalDate last = p.getLastDay(); 

    List<TableColumn> list = new LinkedList<>();
    while(!first.equals(last)) {
        TableColumn tb = new TableColumn();
        tb.setGraphic(factory.getRotated(FileUtil.convertDateToString(first))); 
        list.add(tb);
        first = first.plusDays(1);
    }
    datesTableView.getColumns().setAll(list);

以下表格视图将包含带有日期的列。 在循环中,我将后续日期添加到列,然后添加到列表。 当我尝试将列列表添加到dateTableView的最后一行时,我收到错误消息。 其余部分可以按我的要求进行工作-我对其进行了测试。

我收到的错误是:

Caused by: java.lang.NullPointerException
    at ganttchart.controller.ProjectController.initialize(ProjectController.java:89)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    ... 63 more
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Root cannot be null

第89行是

datesTableView.getColumns().setAll(list);

您需要为dateTableView定义一个属性。 使用@FXML批注。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM