2016-11-23 102 views
-1

你好,我是一个javaFx开发人员,我在桌面应用程序工作我陷入了问题,我必须从另一个控制器清除和更新TableView我尝试调用在clearTable()函数,它是在另一个控制器,但它不会删除tableview中所有数据,以便我如何可以从表中清除所有的行JavaFx更新他们的行数据后删除并更新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(); 
    } 
} 

请帮助

+0

你如何显示这两个控制器 – zombie

+2

请提供一个[最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。 – Itai

+0

我觉得这对你很有用。[passing-parameters-javafx-fxml](http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml/40193164#40193164) – CTN

回答

0

您可以使用ObservableList和使用方法setItems(listName);

那么简单清除所有从可观察的项目和变化将在表中反映出来。

  • 我该怎么做?

Here是一个完整的教程

而且this教程是一个很好的开始为下wuestion。

  • 如何从另一个控制器访问控制器?

使用“MVP”或“MVC”模式并将实例从一个“控制器”添加到另一个“控制器”。