Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFx在更新行数据后删除并更新TableView_Java_Javafx_Javafx 8 - Fatal编程技术网

JavaFx在更新行数据后删除并更新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 {

您好,我是一名javaFx开发人员,我正在开发一个桌面应用程序,我遇到了一个问题,我必须从另一个控制器中清除和更新TableView。我尝试调用另一个控制器中的clearTable()函数,但它不能从TableView中删除所有数据,因此我如何从表中清除所有行

第一控制器

// 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感谢您的回复,但它不起作用