Du solltest dir aber genau überlegen und genau klarmachen, wie du die verschiedenen Zustände so eines Rechners beschreiben und "konsistent halten" kannst. Wenn der Rechner (oder ein anderes Programm) mal ein bißchen komplizierter werden, wird das immer wichtiger...
Genau deswegen

Überleg' dir, welche Zuständes es geben kann, und wodurch der Rechner von einem Zustand in den anderen übergehen kann. Spätestens bei
1+2*2-3=....
müßtest du ja auch Punkt-Vor-Strich-Rechnung berücksichtigen - das kann man dann nur mit einer Art "Puffer" machen, der einige der letzten Zahlen/Ergebnisse und die Operation dazwischen speichert.
Ein Beispiel:
1
+
2
+ Sobald das gedrückt wurde, kann 1+2 ausgerechnet und als 3 gespeichert werden
D.h. man hat dann im Puffer:
3
+
...
Im anderen Fall:
1
+
2
* Hier kann noch NICHTS ausrechnet werden - man muss die nächste Eingabe abwarten
3
+ Jetzt kann 1+2*3 ausgerechnet werden
Im Puffer steht dann
7
+
...
Noch ein anderes Beispiel:
1
+
2
* Hier kann noch NICHTS ausrechnet werden - man muss die nächste Eingabe abwarten
3
* Hier kann jetzt NUR 2*3 ausgerechnet werden.
Im Puffer steht dann
1
+
6
*
...
Ideal wäre, eine Klasse "Rechner" zu erstellen, der OHNE das GUI funktioniert - das kann dann noch ein bißchen schwieriger werden, aber wäre sehr gut in bezug auf eine saubere Trennung von GUI und eigentlicher Rechner-Funktionalität...