我想用控制器中的列填充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);
以下表格视图包含包含日期的列。在循环中,我将后续日期添加到列,然后列出。当我尝试将列列表添加到datesTableView(最后一行)时,我收到错误。休息按我的意愿工作 - 我测试了它。
我收到的错误是:
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);
答案 0 :(得分:-1)
您需要为datesTableView定义的属性。使用@FXML注释。