JavaFx在更新行数据后删除并更新TableView
您好,我是一名javaFx开发人员,我正在开发一个桌面应用程序,我遇到了一个问题,我必须从另一个控制器中清除和更新TableView。我尝试调用另一个控制器中的clearTable()函数,但它不能从TableView中删除所有数据,因此我如何从表中清除所有行 第一控制器JavaFx在更新行数据后删除并更新TableView,java,javafx,javafx-8,Java,Javafx,Javafx 8,您好,我是一名javaFx开发人员,我正在开发一个桌面应用程序,我遇到了一个问题,我必须从另一个控制器中清除和更新TableView。我尝试调用另一个控制器中的clearTable()函数,但它不能从TableView中删除所有数据,因此我如何从表中清除所有行 第一控制器 // Add Product Data To Table View From Database public void addProductDatabaseFromTableView() { try {
// Add Product Data To Table View From Database
public void addProductDatabaseFromTableView() {
try {
//addProductTable.setItems(data);
ResultSet resultSet = addNewProductModelObject.getAllProduct();
while (resultSet.next()) {
AddProduct addProduct = new AddProduct(resultSet.getString("Product_Code"), resultSet.getString("Product_Name"), resultSet.getInt("Quanlity"), resultSet.getString("Manufactured_date"), resultSet.getString("Expired_date"));
data.add(addProduct);
}
} catch (SQLException ex) {
Logger.getLogger(AddNewProductController.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(data);
}
public void UpdateProductAction( ActionEvent actionEvent ){
//System.out.println("UpdateProductAction");
productModelObject.setProductName(ProductName.getText());
productModelObject.setProductCode(getProductCode());
productModelObject.setPrice(Integer.parseInt(RetailPrice.getText()));
productModelObject.setQuanlity(Integer.parseInt(Quanlity.getText()));
productModelObject.setManufactureDate(ManuDate.getValue().toString());
productModelObject.setExpiredDate(ExpDate.getValue().toString());
boolean checkUpdate = productModelObject.updateProductData();
if ( checkUpdate ) {
//System.out.println(checkUpdate);
//addNewProductController.ClearTableData();
addNewProductController.addProductDatabaseFromTableView();
Stage stage = (Stage) BtnClose.getScene().getWindow();
stage.close();
}
}
第二控制器
// Add Product Data To Table View From Database
public void addProductDatabaseFromTableView() {
try {
//addProductTable.setItems(data);
ResultSet resultSet = addNewProductModelObject.getAllProduct();
while (resultSet.next()) {
AddProduct addProduct = new AddProduct(resultSet.getString("Product_Code"), resultSet.getString("Product_Name"), resultSet.getInt("Quanlity"), resultSet.getString("Manufactured_date"), resultSet.getString("Expired_date"));
data.add(addProduct);
}
} catch (SQLException ex) {
Logger.getLogger(AddNewProductController.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(data);
}
public void UpdateProductAction( ActionEvent actionEvent ){
//System.out.println("UpdateProductAction");
productModelObject.setProductName(ProductName.getText());
productModelObject.setProductCode(getProductCode());
productModelObject.setPrice(Integer.parseInt(RetailPrice.getText()));
productModelObject.setQuanlity(Integer.parseInt(Quanlity.getText()));
productModelObject.setManufactureDate(ManuDate.getValue().toString());
productModelObject.setExpiredDate(ExpDate.getValue().toString());
boolean checkUpdate = productModelObject.updateProductData();
if ( checkUpdate ) {
//System.out.println(checkUpdate);
//addNewProductController.ClearTableData();
addNewProductController.addProductDatabaseFromTableView();
Stage stage = (Stage) BtnClose.getScene().getWindow();
stage.close();
}
}
请帮助您可以使用
可观察列表
并使用方法设置项(列表名)代码>
然后简单地清除可观察到的所有项目,这些变化将反映在表上
- 我是怎么做到的
这是一个完整的教程
另外,你如何展示这两个控制器请提供一个。我认为这对你很有用。僵尸请检查code@CTN感谢您的回复,但它不起作用