Textfeld zweimal Auslesen - Probleme

  • Themenstarter Themenstarter Gordon
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gordon

Gast
Hi,
ich möchte ein Textfeld haben in das ich zwei Zahlen eingeben kann mit denen ich dann eine Berechnung durch führen kann.

Also gebe ich zuerst meine "10" ein dann klicke ich auch den Button "+" der mir ein Plus in das Textfeld bring und dann will ich eine zweite Zahl eingeben "5" - nur soll mein Programm am Ende auch über den Button "Ergebnis" das Ergebnis ausgeben.

Die erste Zahl und das "+" kann ich ohne Probleme einlesen und ausgeben lassen, nur wie mach ich das mit der zweiten Zahl?
Das ganze soll nur in einem Textfeld stattfinden.

Code:
try
    {
      zahl1=Double.parseDouble(f.tfZahl1.getText().replace(',','.')); //hier lese ich die erste Zahl ein

      if (obj==f.btnPlus)
      {
        c='+';
        f.tfZahl1.setText(df.format(zahl1)+" "+c+" ");       //hier füge ich je nach Button dann das "+" oder "-" hinzu
      }
      else
      if (obj==f.btnMinus)
      {
         c='-';
         f.tfZahl1.setText(df.format(zahl1)+" "+c+" ");     //hier füge ich je nach Button dann das "+" oder "-" hinzu
      }
    }
    catch(NumberFormatException error1)
    {
      f.tfZahl1.setText("Sie müssen zuerst eine Zahle eingeben! ");
    }

Wenn ihr mir helfen könnt wäre das Super. :wink:

Gruß
Gordon[/code]
 
lies das gesamte Textfeld nochmal ein, schneide alles vom String bis einschließlich des Rechenzeichens weg und wandel deinen String in int bzw Double um ... dann solltest du rechnen können ;-)
 
Leroy42 hat gesagt.:
Gordon hat gesagt.:
Das ganze soll nur in einem Textfeld stattfinden.

Wie soll das denn funktionieren? ???:L

Ich glaube, du solltest deine Vorgehensweise nochmal
total überdenken.

Ich meine es so in der Art wie mein Windows Taschenrechner.
Dort gibt man ja auch in nur ein Feld seine Zahlen ein, nur das ich eben noch in dem Feld auch mein "+" und "=" Zeichen haben möchte.



@trazzag: Werde deinen Tipp mal probieren.
 
Anonymous hat gesagt.:
Leroy42 hat gesagt.:
Gordon hat gesagt.:
Das ganze soll nur in einem Textfeld stattfinden.

Wie soll das denn funktionieren? ???:L

Ich glaube, du solltest deine Vorgehensweise nochmal
total überdenken.

Ich meine es so in der Art wie mein Windows Taschenrechner.
Dort gibt man ja auch in nur ein Feld seine Zahlen ein, nur das ich eben noch in dem Feld auch mein "+" und "=" Zeichen haben möchte.



@trazzag: Werde deinen Tipp mal probieren.

Sorry für den doppel Post hatte ja ganz vergessen meinen Namen oben einzutragen. 😳
 
trazzag hat gesagt.:
lies das gesamte Textfeld nochmal ein, schneide alles vom String bis einschließlich des Rechenzeichens weg und wandel deinen String in int bzw Double um ... dann solltest du rechnen können ;-)

So habe mich mal mit deinem Tipp beschäftigt.

Irgendwie bekomme ich das nicht hin.

Das einlesen machen ich ja hier mit:
Code:
zahl1=Double.parseDouble(f.tfZahl1.getText().replace(',','.'));

Wenn ich diese Zeile noch einmal einfüge, nachdem ich den Button betätigt habe, nur mit "zahl2" vorne funktioniert das irgendwie nicht.

Wenn ich das mit einem String mache muss ich ja die länge haben, da dachte ich mir das ich einmal die länge von der ersten Eingabe bestimme und dann die länge die das " + " Zeichen hat dazu addiere und dann nachdem die zweite Zahl eingegeben wurde die gesamten länge von der zuvor gemessenen länge abziehe.
Also Gesamt - (erste Zahl + Pluszeichen).

Das habe ich mal ausprobiert, da ich dachte das ich so auch evtl. meine zweite Zahl bekomme aber das geht nicht.

Code:
try
    {
      str=(f.tfZahl1.getText().replace(',','.'));
      eLaenge=str.length();
      zahl1=Double.parseDouble(str);

      if (obj==f.btnPlus)
      {
        c='+';
        f.tfZahl1.setText(df.format(zahl1)+" "+c+" ");
        str=(f.tfZahl1.getText());
        eKleiner=str.length();
        eErgebnis=eKleiner-(eLaenge+3);
      }
      if (obj==f.btnErgebnis)
      {
        ergebnis=zahl1+eErgebnis; //hier habe ich jetzt einfach mal ne Plusrechnung gemacht da mit ich evtl mein Ergebnis bekommen was natürlich wenn alles funktioniert wo anders gemacht wird
        f.tfZahl1.setText(df.format(zahl1)+" "+c+" "+df.format(eErgebnis)+" = "+ergebnis);
      }
    }
    catch(NumberFormatException error1)
    {
      f.tfZahl1.setText("Sie müssen zuerst eine Zahle eingeben! ");
    }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben