1
我想填充TableView與控制器中的列,但我不知道爲什麼我的解決方案無法正常工作。如何在FXML控制器中填充javafx.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);
以下的tableview是包含列的日期。在循環中,我將後續日期添加到列,然後列出。當我嘗試將列列表添加到最後一行的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);
可能的重複[如何將行和列添加到JavaFX 8 TableView](https://stackoverflow.com/questions/25395016/how-can-i-add-rows-and-columns-to-a -javafx-8-tableview) – Chris
可能在你沒有顯示的代碼/ fxml中出現錯誤;)請閱讀http://stackoverflow.com/help/mcve並相應地採取行動 – kleopatra