Taschenrechner - Wie addiere,multipliziere und subtrahiere ich?

Zitrus

Bekanntes Mitglied
Hallo, Ich hätte mal wieder ne Frage zum Taschenrechner. Hier erstmal mein Code
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
 
public class FirstGUI extends JFrame
{
    private JButton button1;
    private JButton button2;
    private JButton button3;
    private JButton button4;
    private JButton button5;
    private JButton button6;
    private JButton button7;
    private JButton button8;
    private JButton button9;
    private JButton button10;
    private JButton button11;
    private JButton button12;
    private JButton button13;
    private JPanel panel;
    private JTextArea ta;
 
    public FirstGUI()
    {
        super("Rechner");
 
        setLayout(null);
        setSize(235,180);
        setLocation(300,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(true);
 
        panel = new JPanel(null);
        panel.setSize(300,200);
 
        ta = new JTextArea();
        ta.setBounds(10,10,200,40);
        ta.setEditable(false);
 
        button1 = new JButton ("1");
        button1.addActionListener(new ButtonLauscher1());
        button1.setBounds(10,60,40,25);
        button1.setFont(new Font("Arial", 10, 10));
        button2 = new JButton ("2");
        button2.addActionListener(new ButtonLauscher2());
        button2.setBounds(50,60,40,25);
        button2.setFont(new Font("Arial", 10, 10));
        button3 = new JButton ("3");
        button3.addActionListener(new ButtonLauscher3());
        button3.setBounds(90,60,40,25);
        button3.setFont(new Font("Arial",10, 10));
        button4 = new JButton ("4");
        button4.addActionListener(new ButtonLauscher4());
        button4.setBounds(10,85,40,25);
        button4.setFont(new Font("Arial", 10, 10));
        button5 = new JButton ("5");
        button5.addActionListener(new ButtonLauscher5());
        button5.setBounds(50,85,40,25);
        button5.setFont(new Font("Arial", 10, 10));
        button6 = new JButton ("6");
        button6.addActionListener(new ButtonLauscher6());
        button6.setBounds(90,85,40,25);
        button6.setFont(new Font("Arial", 10, 10));
        button7 = new JButton ("7");
        button7.addActionListener(new ButtonLauscher7());
        button7.setBounds(10,110,40,25);
        button7.setFont(new Font("Arial", 10, 10));
        button8 = new JButton ("8");
        button8.addActionListener(new ButtonLauscher8());
        button8.setBounds(50,110,40,25);
        button8.setFont(new Font("Arial", 10, 10));
        button9 = new JButton ("9");
        button9.addActionListener(new ButtonLauscher9());
        button9.setBounds(90,110,40,25);
        button9.setFont(new Font("Arial", 10, 10));
        button10 = new JButton ("+");
        button10.addActionListener(new ButtonLauscher10());
        button10.setBounds(130,60,40,25);
        button10.setFont(new Font("Arial", 10, 10));
        button11 = new JButton ("-");
        button11.addActionListener(new ButtonLauscher11());
        button11.setBounds(130,85,40,25);
        button11.setFont(new Font("Arial", 10, 10));
        button12 = new JButton ("x");
        button12.addActionListener(new ButtonLauscher12());
        button12.setBounds(130,110,40,25);
        button12.setFont(new Font("Arial", 10, 10));
        button13 = new JButton ("=");
        button13.addActionListener(new ButtonLauscher13());
        button13.setBounds(170,60,40,75);
        button13.setFont(new Font("Arial", 10, 10));
 
 
        panel.add(ta);
        panel.add(button1);
        panel.add(button2);
        panel.add(button3);
        panel.add(button10);
        panel.add(button13);
        panel.add(button4);
        panel.add(button5);
        panel.add(button6);
        panel.add(button11);
        panel.add(button7);
        panel.add(button8);
        panel.add(button9);
        panel.add(button12);
        
        add(panel);
 
        setVisible(true);
 
    }
 
    public static void main (String[] args)
    {
        new FirstGUI();
    }
    
    
    class ButtonLauscher1 implements ActionListener { 
      public void actionPerformed(ActionEvent evt) { 
           if(evt.getSource() == button1){ 
                ta.append("1"); 
           }
      }
    }
    
    class ButtonLauscher2 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
           if (evt.getSource() == button2){
               ta.append("2");
           }
      }
    }
    
    class ButtonLauscher3 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button3) {
              ta.append("3");
            }
      }
    }
    
    class ButtonLauscher4 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button4) {
              ta.append("4");
            }
      }
    }
    
    class ButtonLauscher5 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button5) {
              ta.append("5");
            }
      }
    }
    
    class ButtonLauscher6 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button6) {
              ta.append("6");
            }
      }
    }
    
    class ButtonLauscher7 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button7) {
              ta.append("7");
            }
      }
    }
    
    class ButtonLauscher8 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button8) {
              ta.append("8");
            }
      }
    }
    
    class ButtonLauscher9 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button9) {
              ta.append("9");
            }
      }
    }
      
    class ButtonLauscher10 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button10) {
              ta.append("+");
            }
      }
    }
    
    class ButtonLauscher11 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button11) {
              ta.append("-");
            }
      }
    }
    
    class ButtonLauscher12 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button12) {
              ta.append("x");
            }
      }
    }
    
    class ButtonLauscher13 implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
          if (evt.getSource() == button13) {
              ta.append("=");
            }
      }
    }
    
}

Hab im Internet schon nachgeschaut aber nichts gefunden bei dem ich es wirklich richtig verstanden habe.. Also wie kriege ich nun hin dass die Zahlen addiert, subtrahiert,multipliziert werden?
Mfg, Zitrus
 
Zuletzt bearbeitet von einem Moderator:

AndiE

Top Contributor
Hi,

das ist nun wirklich nicht einfach. Vergewissere die doch einfach nochmal, was OOP heißt: Datenobjekte stehen miteinander in Beziehung und kommunizieren miteinander. Das Designpattern, das du nutzt, ist das MVC-Modell. Du hast nun schon ein Ansichtsobjekt, gut. Da Taschenrechner sich mit Zahlen beschäftigen, wäre also ein Objekt "Zahl" nicht verkehrt, das dann das Modellobjekt ist. Jede Zifferneingabe verändert den Wert des Operanden, und jede Eingabe einer Operation oder des Gleichheitszeichens löst eine Berechnung aus, und dies alles verändert das Ansichtsobjekt. Dies zu entwerfen und zu implementieren ist zwar nicht ganz einfach, aber machbar.
 

Saheeda

Top Contributor
@Zitrus

Du kannst direkt im Code Berechnungen ausführen. Die Grundrechenarten kannst du mit *, / ,- ,+ machen, für das meiste andere gibt es die Klasse Math.
Möchtest du allerdings ganze Aufgaben in ihre Bestandteile zerlegen und ausrechnen lassen, brauchst du dafür einen Parser. (im Display steht z.B. "2+3*4=") Sowas kannst du dir selbst schreiben, ist aber eventuell für den Anfang zu schwierig.
Sowieso würde ich dir raten, nicht gleich mit GUIs anzufangen, sondern den Rechner erstmal als einfache Konsolenanwendung zu entwickeln.
 

jeegeek

Mitglied
Ein Taschenrechner ist auf den ersten Blick eine einfache Sache, aber auf dem zweiten doch sehr kompliziert. Am Anfang wäre ein Taschenrechner der ganz Simpel nach dem Muster Eingabe1 -> Operator -> Eingabe2 -> Summe arbeitet wäre das einfachste. Was du versuchst gleich zu beginn ist wohl etwas zu hoch. Du müsstest deine Eingabe in einzelne Teile zerlegen, also Zahlen, Operatoren und so weiter. Danach musst du eine Logik schreiben die in der Lage ist die Berechnung in der richtigen Reihenfolge auszuführen und genau das ist der komplexe Teil.
 

AndiE

Top Contributor
Hi Zitrus,

ich nutze mal dieses Thema, weil es dein erstes in dieser Richtung war. Ich habe Programmieren gelernt, indem ich mich vom einfachen zum komplizierten vorgetastet habe. Daher hier mein Vorschlag.

Erzeuge ein Fenster mit zwei Textfeldern "Parameter" und "Ergebis"und sechs Button "+,-,x,/,=,c"

Mache dann dieses nacheinander:
1. Aufgabe: Eine Eingabe in "Parameter" erscheint nach Drücken auf "=" in "Ergebnis
2. Aufgabe: Eine Zahl in "Parameter" soll mit 2 berechnet werden, also z.B. Bei Druck auf "+" um 2 erhöht werden. Das Ergebins soll in Ergebnis stehen
3. Aufgabe: Berechne eine einfache Gleichung wie [Operand1][Operation][Operand2][=]. Dabei werden die beiden Operaden in das Textfeld Parameter eingegeben, und die Opration ist einer der vier Grundrechenarten.

Nimm dir diese Aufgaben nacheinander vor, sie bauen aufeinander auf.

VG

Andre'


3. Aufgabe;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben