需要帮助...这是表视图的输出,我找不到它为什么不显示除columns以外的任何行的数据。我的意思是它仅显示数据库列这是代码
@Override
public void start(Stage stage) throws Exception {
TableView<ObservableList<String>> tableview = new TableView();
ObservableList<ObservableList<String>> data = FXCollections.observableArrayList();
Connection c = DBConnect.connect();
String sql = "SELECT * FROM INVENTORY.CUSTOMER";
ResultSet rs = c.createStatement().executeQuery(sql);
ResultSetMetaData metaData = rs.getMetaData();
int count = metaData.getColumnCount();
for (int i = 0; i < count; i++){
System.out.println(metaData.getColumnLabel(i + 1));
TableColumn<ObservableList<String>, String> col = new TableColumn<>(metaData.getColumnLabel(i + 1));
tableview.getColumns().add(col);
}
while(rs.next()) {
ObservableList<String> row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
row.add(rs.getString(i));
}
data.add(row);
System.out.println("Row [1] added " + row);
}
tableview.setItems(data);
rs.close();
Scene scene = new Scene(tableview);
stage.setScene(scene);
stage.show();
}
希望你们能找到错误的部分。我也没有任何错误。
您需要指定一个cellValueFactory
。否则,TableView
不知道要在特定列中显示项目的哪一部分:
TableColumn<ObservableList<String>, String> col = new TableColumn<>(metaData.getColumnLabel(i + 1));
final int index = i; // is this the index corresponding to the list element to display???
col.setCellValueFactory(cellData -> Bindings.stringValueAt(cellData.getValue(), index));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句