为什么数据库行数据在JavaFX TableView中不可见

时间:2018-10-24 01:31:09

标签: java database javafx tableview javadb

您好,我有一个问题,我试图使用Java将数据库中的数据显示到TableView中,因为我在JavaFx中找不到C#中的DataGridView之类的东西。 我用以下方法填写表格:

private void fillTableView() throws SQLException {
        // fill header      
        for (int i = 2; i <= resultSet.getMetaData().getColumnCount(); i++) {
            TableColumn column = new TableColumn(resultSet.getMetaData().getColumnName(i));
            tableView.getColumns().addAll(column);
        }       

        // fill rows
        while (resultSet.next()) { // loop through the rows by one
            ObservableList<String> row = FXCollections.observableArrayList();
            for (int i = 2; i <= resultSet.getMetaData().getColumnCount(); i++) { // loop through the cells of each row    
                // add the value of this cell to the valueToAdd string
                row.add(resultSet.getString(i));
            }
            tableView.getItems().add((row));
            //rows.add(rows);
        }
        //tableView.setItems(rows);
    }

第一部分效果很好,并且列名可见,但是,数据行显示为空,但可以选择它们,因此我可以选择TableView中的前5行(我的行中有5行ResultSet),但这些行显示为空。我试图删除此部分

tableView.getItems().add((row));

然后取消注释下面的两行代码,但仍然无法正常工作。 我试图使对象使用数据库中的值进行初始化,然后将对象添加到TableView而不是添加ObservableList表示行的字符串,如下所示,但仍然给出相同的结果(空行)< / p>

while (resultSet.next()) {
            Employee employee = new Employee(resultSet.getInt(1), resultSet.getString(2), resultSet.getString(3), resultSet.getString(4));
            tableView.getItems().add(employee);
        }

有人可以告诉我我在做什么错吗?

我正在使用Netbeans 8,场景构建器,Java 8和JavaDB(又名Apache Derby)。

0 个答案:

没有答案