2016-11-23 122 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」模式並將實例從一個「控制器」添加到另一個「控制器」。