我试图解决这个问题,我搜索了100个问题,但没有答案可行。 我试图在Initialize上填充TableView。我的数据正在加载,如控制台输出中所示,tableView显示应显示的6行,但没有值。我做错了什么,但我无法弄清楚是什么。
非常感谢任何帮助。谢谢!
this->
控制台输出:
public class spotStatusController {
private Connection con = connect();
@FXML
private TableView<ObservableList<String>> spotReport;
private ObservableList spotData = FXCollections.observableArrayList();
@FXML
private TableColumn<ObservableList<String>,String> col;
@FXML
private void initialize(){
try{
java.sql.Statement stmt = con.createStatement();
String sql = "SELECT * from spot";
java.sql.ResultSet rs = stmt.executeQuery(sql);
for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
col = new TableColumn<>(rs.getMetaData().getColumnName(i+1));
col.setCellValueFactory(new PropertyValueFactory<ObservableList<String>,String>("s"));
spotReport.getColumns().add(col);
System.out.println("Column ["+i+"] ");
}
while (rs.next()){
ObservableList row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
row.add(rs.getString(i));
}
System.out.println("Row [1] added "+row);
spotData.add(row);
}
System.out.println(spotData);
//spotReport.setItems(spotData);
spotReport.getItems().setAll(spotData);
}
catch(SQLException e){
e.printStackTrace();
}
}}