2016-11-25 60 views
0

根據當前日期已過期的產品列表我正在爲我的大學時期項目(市場經理)在NetBeans中進行GUI應用程序。我們可以將任何產品添加到應用程序並將數據存儲爲.txt文件,文件名基於產品代碼。在1234.txt 樣本數據:Java-根據文本文件

Product code : 1234 
Name : Noodle 
Price : $1000 
Description : Instant noodle is not good for healthy 
Expiry data : 12-01-2050 

我的問題是如何讀取所有的文件,如果有已經加入了更多的.txt文件,併爲文件名基礎上讀取文件的日期和過期產品JTextArea中的顯示列表當前日期和按鈕以刪除所有過期的文件。

private void okBtnActionPerformed(java.awt.event.ActionEvent evt) {          
    String code = txtCode.getText(); 
    String name = txtName.getText(); 
    String price = txtPrice.getText(); 
    String expiry = txtExpiry.getText(); 
    String quantity = txtQuantity.getText(); 
    String description = txtDescription.getText(); 
    int quant = Integer.parseInt(quantity); 

    try { 
     for (int i = 0; i < quant; i++) { 
      File file = new File("Product/"+code+i+".txt"); 
      if (!file.exists()) { 
       file.createNewFile(); 
       String content = "Code: " + code + i + "\r\nName: " + name + "\r\nPrice: RM." + price + "\r\nDescription: " + description + "\r\nExpiry Date: " + expiry; 
       FileWriter data = new FileWriter(file.getAbsoluteFile()); 
       BufferedWriter bw = new BufferedWriter(data); 
       bw.write(content); 
       bw.close(); 

       JOptionPane.showMessageDialog(this, "Product Added"); 

       txtCode.setText(""); 
       txtName.setText(""); 
       txtPrice.setText(""); 
       txtExpiry.setText(""); 
       txtQuantity.setText(""); 
       txtDescription.setText(""); 
      } else { 
       JOptionPane.showMessageDialog(this, "The Product Code Already Added"); 
       break; 
      } 
     } 

    } catch (IOException e) { 

    } 

} 

該代碼添加產品

+0

這很寬泛,你現在有什麼代碼?如何使用一些數據庫? – 2016-11-25 18:32:24

+0

我已經編輯我的問題 –

+0

,我仍然沒有做任何事情jFrame顯示過期的產品 @RC。什麼是數據庫? 我還是新的GUI程序,現在我剛上大學第二學期 –

回答

1

您可以通過分離責任開始。您首先創建代表產品的。在目前的方法中,您嘗試通過一組「變量」來對產品進行「建模」,這些變量以某種方式組合在一起。

相反,創建一個具有相應字段的類;例如一個很好的等價方法。

然後,您創建一個方法,該方法需要一個表示文件名的字符串。該方法打開文件;讀取文本數據並創建一個一個產品對象。讓我們打電話給readSingleProduct()

下一步:創建一個方法,它以一個代表目錄的字符串爲例。該方法檢查該目錄中的所有文本文件,並調用readSingleProduct()以創建Product對象;最後,該方法將返回一些List<Product>

然後,最後,您將構建接收此類產品對象列表的UI代碼,並將模型用作實際UI組件的

還有一個提示:你從來沒有 catch塊。你至少應該在那裏打印例外; 忽略錯誤總是一個超級壞主意!

希望能讓你走!