2017-07-07 61 views
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); 
+0

可能的重複[如何將行和列添加到JavaFX 8 TableView](https://stackoverflow.com/questions/25395016/how-can-i-add-rows-and-columns-to-a -javafx-8-tableview) – Chris

+0

可能在你沒有顯示的代碼/ fxml中出現錯誤;)請閱讀http://stackoverflow.com/help/mcve並相應地採取行動 – kleopatra

回答

-1

你會需要datesTableView定義的屬性。使用@FXML註釋。

相關問題