2017-12-27 4 views
-2

Ich habe ein Projekt und mein Java-Programm in Swing verwendet ein Doppel-Array, um Werte vom Benutzer zu akzeptieren und die Summe der Elemente, ähnlich einem Bestellformular, zu drucken. Angenommen, der Benutzer gibt keinen Wert in das Textfeld ein, dies zeigt einen Fehler an und verhindert weitere Berechnungen. Meine Frage ist, Was soll ich codieren, damit der Computer versteht, dass nichts in das Textfeld eingegeben wird, also nehmen Sie den Wert als 0 an. Ich möchte dies entweder durch Vergleichen/Konvertieren des doppelten Array-Werts tun zu einer Zeichenfolge und dann mit Berechnungen fortfahren.Wie kann ich einen doppelten Eingabewert in einem Array als null/String-Wert ("") vergleichen?

Hier ist mein Code:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    double price[]=new double[]{0.25,8.55,0.50,0.25}; 
    double amount[]=new double[4]; 
    double quantity[]=new double[4]; 
    quantity[0]=Double.parseDouble(jTextField1.getText()); 
    quantity[1]=Double.parseDouble(jTextField2.getText()); 
    quantity[2]=Double.parseDouble(jTextField3.getText()); 
    quantity[3]=Double.parseDouble(jTextField4.getText()); 
    for(int i=0;i<4;i++) // I want to use a for-loop or if-statement to 
         check if there is a value entered or not 
    { 
     if() 
     { 
      quantity[i] //no clue what to do here. 
     } 
    } 
    for(int i=0;i<4;i++) 
    { 

     { 
      amount[i]=quantity[i]*price[i]; 
     } 

    } 
    jTextField5.setText(String.valueOf(amount[0])); 
    jTextField6.setText(String.valueOf(amount[1])); 
    jTextField7.setText(String.valueOf(amount[2])); 
    jTextField8.setText(String.valueOf(amount[3])); 
+2

verwenden Und die Frage ist ...? Wenn der Benutzer keinen Wert eingibt, berechnen Sie normalerweise nichts ... was genau das ist, was Sie gesagt haben, also bin ich verwirrt, was die eigentliche Frage ist. – markspace

+1

vermeiden Sie die Verwendung von 'jTextField1,2 .....', Verwenden Sie den entsprechenden Namen entsprechend dem Attributnamen, so dass Ihr Code besser lesbar – Sanket

+0

Verwenden Sie die JTextField.getText() -Option, um es mit Werten zu vergleichen. – arkdevelopment

Antwort

1

Zuerst würden Sie wollen, zu überprüfen, ob die Textfelder leer oder ein String-Wert sind, bevor sie das Parsen. Und Sie werden es wahrscheinlich für alle Felder tun müssen.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    // check the values of the text fields including an or condition for regular expressions 
    if (jTextField1.isEmpty() || jTextField1.getText().matches("\\d+.?\\d*") { 
     // you can use something like a modal to alert 
     JOptionPane.showMessage(null,"Must enter a decimal value"); 
    } else { 
     // do something with jTextField1 
    } 
} 
+0

Glücklich zu helfen, kann diese Art der Überprüfung den Code mit mehreren Feldern zu überprüfen, so dass Sie es möglicherweise in seine eigene Methode setzen und rufen Sie diese Methode, jedes Textfeld zu überprüfen – RickyM

1

können Sie

if (!jTextField1.getText().isEmpty())

+0

Dies ist eine große Vorschlag/Antwort und wird sicherlich helfen, einen Teil der Frage zu adressieren. Es ist jedoch hilfreicher, eine Erklärung dafür zu geben, warum dieses Codeelement funktionieren sollte - auch wenn Sie sich das Code-Snippet ansehen - Sie können sehen, dass es Bereiche gibt, an denen er Werte aus Feldern als Double analysiert leere Felder - also würden Sie ihn auch darüber "warnen" und beraten, wie Sie den Code am besten umgestalten können. – ishmaelMakitla

Verwandte Themen