我无法使用fxml填充Javafx TableView

时间:2018-12-07 06:58:49

标签: mysql javafx fxml

代码似乎没什么问题,但是表没有填充。相同的代码可以在其他地方很好地工作。

public class Test implements Initializable {
@FXML
TableView sort_view;
@FXML
TableColumn sort_id, sort_pname, sort_price, sort_quantity, sort_total;
@Override
public void initialize(URL location, ResourceBundle resources) {
    final ObservableList<Sort> data =
            FXCollections.observableArrayList();
    Sort sort;
    SalesDb db = new SalesDb();
    ResultSet rs = db.sortProduct();

    try {
        while (rs.next()) {
            int id = rs.getInt("ID");
            String productName = rs.getString("ProductName");
            String productPrice = rs.getString("ProductPrice");
            String quantity = rs.getString("Quantity");
            String total = rs.getString("Total");

            sort = new Sort(Integer.toString(id),productName,productPrice,quantity,total);
            data.add(sort);
            System.out.println(sort.getId()+","+sort.getProductName()+","+sort.getPrice()+","+sort.getQuantity()+","+sort.getTotal());
        }
    }catch(Exception  e){
        System.out.println("There is an Exception.");
        System.out.println(e.getMessage());
    }
    sort_id.setCellValueFactory(new PropertyValueFactory<Sort, String>("id"));
    sort_pname.setCellValueFactory(new PropertyValueFactory<Sort, String>("productName"));
    sort_price.setCellValueFactory(new PropertyValueFactory<Sort, String>("price"));
    sort_quantity.setCellValueFactory(new PropertyValueFactory<Sort, String>("quantity"));
    sort_total.setCellValueFactory(new PropertyValueFactory<Sort, String>("total"));

    sort_view.getItems().add(data);


}

}

我的fxml文件如下。

enter image description here

我的表没有填充,这可能是原因。 表显示如下。

enter image description here

请调查它是什么问题...

1 个答案:

答案 0 :(得分:0)

这是由于命名约定不正确造成的,因为有多个条目 我不得不使用data.addAll(sort)而不是data.add(sort)。