2016-11-25 2 views
0

abgelaufen ist Ich mache GUI-Anwendung in Netbeans für meine College-Semester-Projekt (Market Manager). Wir können jedes Produkt zur App hinzufügen und die Daten als .txt-Datei speichern. Der Dateiname basiert auf dem Produktcode. Beispieldaten in 1234.txt:Java-Produzieren Sie eine Liste von Produkten, die bereits auf dem aktuellen Datum aus der Textdatei

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

meine Frage ist, wie alle Datei zu lesen, wenn es bereits mehr .txt-Datei hinzugefügt und das Datum in der Datei und zeigt die Liste der abgelaufenen Produkt zu JTextArea lesen als Dateiname basiert auf aktuelles Datum und Schaltfläche zum Entfernen aller abgelaufenen Dateien.

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) { 

    } 

} 

dieser Code für

Produkt Hinzufügen
+0

Das ist breit, welchen Code hast du gerade? Wie wäre es mit einer DB? –

+0

Ich bearbeite bereits meine Frage –

+0

und ich mache immer noch nichts zu jFrame für die Anzeige abgelaufener Produkte @RC. Was ist DB? ich immer noch neu für GUI-Programm, und jetzt bin ich nur zweite Semester meiner Hochschule –

Antwort

1

Sie beginnen mit Trennung Verantwortlichkeiten. Sie erstellen zuerst eine Klasse, die ein Produkt darstellt. In Ihrem derzeitigen Ansatz versuchen Sie, ein Produkt durch eine Menge von Variablen zu "modellieren", die irgendwie zusammengehören.

Erstellen Sie stattdessen eine Klasse mit den entsprechenden Feldern. und eine nette equals-Methode zum Beispiel.

Dann erstellen Sie eine Methode, die einen String übernimmt, der einen Dateinamen darstellt. Diese Methode öffnet die Datei. liest die Textdaten und erzeugt ein Produktobjekt von diesem. Lass uns das readSingleProduct() anrufen.

Als nächstes: Erstellen Sie eine Methode, die einen String als Beispiel für ein Verzeichnis nimmt. Diese Methode sucht nach allen Textdateien in diesem Verzeichnis und ruft readSingleProduct() auf, um Produktobjekte zu erstellen; und am Ende würde diese Methode einige List<Product> zurückgeben.

Und dann schließlich erstellen Sie Ihren UI-Code, der eine solche Liste der Produktobjekte empfängt, und verwendet diese als Modell für die tatsächlichen UI-Komponenten.

Und ein Hinweis: Sie nie gehen Sie mit leer fangen Blöcke. Sie sollten die Ausnahme dort zumindest ausdrucken; ignorieren Fehler ist immer eine super-schlechte Idee!

Hoffe, dass Sie loslegen!

Verwandte Themen