Java Zahlen im TextFeld übergeben

tonikln

Lt. Junior Grade
Registriert
Aug. 2005
Beiträge
314
hallo zusammen,
bin gerade dabei eine kleinigkeit für mich selbst zu Programmieren, bin nämlich etwas am lernen ;).

Versuche gerade ein Mini Taschenrechner aber in GUI Anwendung zu Programmieren. Ich habe auch schon die Buttons und das Textfeld erstellt. Nun weiß ich nicht genau, wie ich die Zahl im Textfeld anzeigen lassen kann :S!?


Danke schonmal für eure hilfe.
 
hm wie wärs mit setText(String str) ?

deinen buttons nen actionlistener adden, in der actionPerformed methode dann "deintextfeld.setText("" + button.getText())

und so eine einfache frage hättest du auch locker mit der api beantworte können http://java.sun.com/javase/6/docs/api/
 
Hier ma ein Codebeispiel:

Bei swing:
Code:
import javax.swing.*;
import java.awt.event.*;

class SwingFenster extends JFrame{
  JTextField tf;
  JButton btn;
  int zahl;

  public SwingFenster(){
    zahl = 56;
    btn = new JButton("Drück mich!");
    tf =  new JTextField(20);
    tf.setText(String.valueOf(zahl));
    btn.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent ae){
        zahl++;
        tf.setText(String.valueOf(zahl));
      }
    });
  
    add(tf);
    add(btn);
    pack();
  }

  public static void main(String args[]){
    SwingFenster f = new SwingFenster();
    f.setVisible(true);
  }
}

wurde nicht getestet, soltle aber laufen
 
Wenn du nen Textfeld hast, ist das gar kein Thema. Wie mein Vorredner schon sagte: Element.setText("Zahlxyz");

Entsprechend wenn du eine Zahl aus dem Textfeld ziehen willst, bekommst du erstmal einen String mit: Element.getText();
Den kannst du nach belieben in das Zahlenformat umwandeln welches du gerade brauchst, sprich: Element.getText().intValue(); (z.b. für eine Ganzzahl)...
 
@Fatal Error:
Er ist am Lernen, und kein Programmierguru.
Zudem ist dein Code - mit Verlaub - beschissen.

deintextfield.setText(deintextfield.getText() + event.getActionCommand())

würde vermutlich besser funktionieren, ansonsten muss er sich erst mal den Button vom Event holen, was auch ginge...

aber button ist nicht Gott gegeben...

Wenn du helfen willst, mach es, aber sei doch ein wenig freundlicher zu nem Anfänger.
 
1668mib schrieb:
@Fatal Error:
Er ist am Lernen, und kein Programmierguru.
Zudem ist dein Code - mit Verlaub - beschissen.

Wenn du helfen willst, mach es, aber sei doch ein wenig freundlicher zu nem Anfänger.

naja so lernt man das in der schule ... ;)
war er doch, hat doch nur nen beispiel gegeben. zwar etwas komplizierter, aber das sollte den TE ja nicht davon abhalten das nicht zuverstehen :)

edit.
actioncommand rall ich jetzt auch nochnicht so wirklich, obwohl der code oben ja nen kinderspiel ist. :D
gleich mal die doku wälzen ;)

@TE
was für ne prog.umgebung nutzt du?
 
Zuletzt bearbeitet:
@Shio: Das ActionCommand eines Buttons ist standardmäßig sein Text. Wenn man weiß, dass der EventHandler nur auf Buttons reagiert, kann man entweder via Type-Cast aus der Source einen Button machen und den Text auslesen, oder man nimmt direkt das ActionCommand des Events.

Edit: Über das ActionCommand lassen sich nunmal einfach viele Aktionen relativ leicht von einem EventHandler erledigen, beispielsweise könnte ein Button das Event "Speichern" auslösen, gleichzeitig aber auch ein Menü-Item. Dabei spielt es für den Handler keine Rolle, wer das Event geworfen hat, er hat in beiden Fällen gleich zu reagieren. Also bekommen beide (Button und Menü-Item) das selbe ActionCommand, so muss nur noch auf dieses reagiert werden.
 
Zuletzt bearbeitet:
@shio:
ich nutze NetBeans IDE 6.7!

Ich hab mein Taschenrechner im Visual Designer erstellt (Buttons usw.)

Wenn ich ehrlich bin, ich habe es leider immernoch mit euren Beispielen verstanden. Hatte einen Taschenrechner auch in der Consoleneben programmiert und es war viel einfacher als jetzt die GUI :D.


sollte ich vllt etwas leichteres in der GUI umgebung programmieren :S ??

Und danke das ihr so viele beispiele gepostet habt
 
Das Problem dahinter ist eindeutig: NetBeans! Mit NetBeans kannst du zwar alles schön zusammenklicken, aber du hast keine Ahnung davon gewonnen wie und warum diese Elemente so zusammengehören...

Deshalb meine Empfehlung: Nutze Eclipse und fang klein an, nicht gleich mit dem Kopf durch die Wand! Ein Taschenrechner ist sicherlich nicht sehr komplex, aber für den Anfang vielleicht doch schon etwas härter... Ich würde dir vorschlagen ein Buch zu kaufen, welches dich dort abholt wo du momentan mit deinem Wissen stehst... Bedenke dabei dass jeder mal klein angefangen hat! Ein Buchbeispiel hierzu (was ich persönlich sehr empfehlen kann) ist der zweite Band vom fast schon heiligen Dietmar Ratz. (Programmieren in Java, Grundkurs, Band 2 von Ratz, Scheffler).

Arbeite das Buch konsequent durch und dann kannst du gerne NetBeans benutzen.
 
Warscjeinlich hast du inzwischen schon eine Antwort gefunden, aber für diejenigen die vielleicht auch sich mal einen Taschenrechner Programmieren möchten, hier ein Lösungsvorschag wie man das Programm erstellen könnte. Hab das irgenwann mal auch Grafisch erstellt, finds nur gerade nicht wieder. Wenn Ich`s wieder finde kommt das hier noch mit rein, wenn nicht mach ich des halt neu, kommt dann aber ein paar tage später, da ich gerade an meiner Hausarbeit(wird benotet(erstellt mit Java)) sitze und noch ein paar "Kinderkrankheiten" aus dem Programm entfernen muss.

Konsole:

Code:
import java.util.*;

class Taschenrechner2{
  public static void main (String[]args){
    Scanner einlesen = new Scanner(System.in);
    //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    System.out.println("Womit wollen Sie Rechnen?");
    System.out.println("Addition       = 1");
    System.out.println("Subtraktion    = 2");
    System.out.println("Multiplikation = 3");
    System.out.println("Division       = 4");
    //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    System.out.print("Bitte Wählen Sie eine Zahl: ");
    double rf = einlesen.nextDouble();


    System.out.print("Bitte geben Sie die erste Zahl zum Rechnen ein: ");
    double z1 = einlesen.nextDouble();

    System.out.print("Bitte geben Sie die zweite Zahl zum Rechnen ein: ");
    double z2 = einlesen.nextDouble();

    double ergebnisAdd = z1 + z2;
    double ergebnisSub = z1 - z2;
    double ergebnisMul = z1 * z2;
    double ergebnisDiv = z1 / z2;
    //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    if (rf==1) {
     System.out.println("Das Ergebnis ist: "+ergebnisAdd);
    }
    if (rf==2) {
      System.out.println("Das Ergebnis ist: "+ergebnisSub);
    }
    if (rf==3) {
      System.out.println("Das Ergebnis ist: "+ergebnisMul);
    }
    if (rf==4) {
      System.out.println("Das Ergebnis ist: "+ergebnisDiv);
    }
  }
}
Die Prozentzeichen dienen nur zur besseren Übersicht und sind für das Programm unwichtig.
 
Zurück
Oben