javaFX tableview中没有内容

javaFX tableview中没有内容,javafx,dynamic,groovy,load,tableview,Javafx,Dynamic,Groovy,Load,Tableview,所以我检查了另一个,但没有任何帮助 我有一个名为ledger的数据库,我想查看我的交易 void buildData(){ final ObservableList<ObservableList<String>> data = null try{ //ResultSet ResultSet rs = sql.getTransactions(account.getValue().toString()) /

所以我检查了另一个,但没有任何帮助

我有一个名为ledger的数据库,我想查看我的交易

void buildData(){

    final ObservableList<ObservableList<String>> data = null

    try{
        //ResultSet
        ResultSet rs = sql.getTransactions(account.getValue().toString())

        /**********************************
         * TABLE COLUMN ADDED DYNAMICALLY *
         **********************************/
        for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
            //We are using non property style for making dynamic table
            final int j = i
            TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1))
            col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
                ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                    return new SimpleStringProperty(param.getValue().get(j).toString())
                }
            })

            budgetTable.getColumns().addAll(col)
        }

        /********************************
         * Data added to ObservableList *
         ********************************/
        while(rs.next()){
            //Iterate Row

            ObservableList<String> row = FXCollections.observableArrayList()
            for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
                //Iterate Column
                row.add(rs.getString(i))
            }
            println("Row [1] added "+row )
            data?.add(row)
        }

        //FINALLY ADDED TO TableView
        budgetTable.setItems(data)
    }catch(Exception e){
        e.printStackTrace()
        System.out.println("Error on Building Data")
    }
}
我没有错误,否则我就有很好的机会解决它。现在我不知道问题出在哪里。只是在构建时说“表中没有内容”。该文件是groovy文件,因此它看起来像python语法

提前感谢您的帮助、时间和见解!
祝你身体健康

我对Groovy不是很熟悉,但我相信我知道问题所在。首先,将
data
声明为
final
,然后将
null
分配给它

final ObservableList<ObservableList<String>> data = null;
致:

final observeList data=FXCollections.observearraylist();

应该能解决你的问题。

确实是这个问题!非常感谢你。令人惊讶的是,我多次查看该代码却从未注意到。我不得不使用空安全操作符bc,我得到了一个空指针异常,现在我知道为什么了!
final ObservableList<ObservableList<String>> data = null;
final ObservableList<ObservableList<String>> data = null;
final ObservableList<ObservableList<String>> data = FXCollections.observableArrayList();