您好,我有一个问题,我试图使用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)。