TableView没有在JavaFX中显示值

时间:2017-10-14 19:48:55

标签: java javafx

我试图解决这个问题,我搜索了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();
    }
}}

Here image of the table

0 个答案:

没有答案