ActionListener abwarten lassen?

Extremefall

Bekanntes Mitglied
Hallo,
ich habe einen Stack A und ein paar Buttons mit Operanden.
Nun soll bei Klick auf den Button der Operand auf den Stack A gelegt werden. Auf Stack B gibt es Operatoren. Wenn nun ein Button gedrückt wird, so wird der Operator auf Stack B gelegt. Nun habe ich folgendes Problem: Die Buttons gehen von 1-9. Wenn ich nun auf den Operandenbutton klicke, wird es auf Stack A gelegt. Nur wie kann ich jetzt mehrstellige Zahlen akzeptieren? Da muss ja gewartet werden, bis ein Operator gedrückt wird. Wie löse ich es am besten? Mit einer Schleife oder wie ist so etwas möglich?
 

nrg

Top Contributor
willst du einen taschenrechner programmieren? musst du es mit stacks machen?

eine Möglichkeit wäre erstmal jeden Operand (edit: bzw jede Ziffer - der gesamte StringBuilder entspricht dann dem Operanden) in einem StringBuilder zwischenzuspeichern. Wenn dann ein Operator gedrückt wird, legst du sowohl den StringBuilder in Stack A als auch den Operator in Stack B.

Andere Möglichkeit wäre es gleich anders zu machen :)
 
Zuletzt bearbeitet:

Extremefall

Bekanntes Mitglied
Soweit so gut, aber ich muss es dann noch nach String casten. Wenn ich die Methode toString() verwende, klappt es leider nicht, da ich es dann von String in int casten muss. Wie kann man daa Problem lösen? Also muss ich den Stringbuilder, den ich dem Stack übergeben habe, irgendwie in einen int casten. Geht das und wenn ja, wie?
 
Zuletzt bearbeitet:

Extremefall

Bekanntes Mitglied
Danke :) Nun wäre das Problem allerdings, dass die Methode nicht weiß, dass es sich um einen Integer handelt. Die denkt immer noch, es ist ein Object. Deswegen kann ich auch nicht schreiben:

int operandi = KlasseA.operand.top();
bzw. es casten:
int operandi = (int) KlasseA.operand.top();

Es sollte so ungefähr aussehen:
int operand1 = KlasseA.operand.top();
KlasseA.operanden.pop();
int operand2 = (int) KlasseA.operand.top();
String operator (String) KlasseA.operator.top();
KlasseA.operator.pop();
 
Zuletzt bearbeitet:

Extremefall

Bekanntes Mitglied
Java:
public void gebezwischenresultat(){
		String operand1 = (String) operanden.top();
		operanden.pop();
		String operand2 = (String) operanden.top();
		operanden.pop();
		String operator = (String) operatoren.top();
		operatoren.pop();
		int operand1integer = Integer.parseInt(operand1); 
		int operand2integer = Integer.parseInt(operand2);
		...
	}
	
	public void actionPerformed(ActionEvent e) {
	...
if (e.getSource()==multiplizieren){
	...
operanden.push(Integer.parseInt(operandenstrings.toString()));
	sizeoperanden++;
	operandenstrings.setLength(0);
	if (operatoren.isEmpty()){
		operatoren.push("*");
	}
	else {
		checkoperator("*",operatoren.top());
		System.out.println(""+operatorstand);
		if(operatorstand == "Hoeherwertig"){
			operatoren.push("*");
		}
		else if (operatorstand == "Gleichwertig"){
				if (sizeoperanden >=2){
					gebezwischenresultat();
				System.out.println(zwischenergebnis);
				}
				}
	}
	}
operandenstrings ist der StringBuilder und operantoren und operanden sind die Stacks.

Das ist der wichtige Code.
 
Zuletzt bearbeitet:

Extremefall

Bekanntes Mitglied
Also meine Absicht in der Methode zum rechnen ist folgende:
Der Operator wird über die Parameter geliefert.

Nur wie kann ich vom operandenstack den ersten und zweiten Operanden von oben nehmen, ihn in einer Variable zu speichern? Das Problem ist nämlich, dass der StringBuder schon ein Integer ist und ich somit nicht mehr fasten muss. Trotzdem funktioniert int als Variable nicht, da der Stack als Parameter Object hat.
 

Landei

Top Contributor
Ein StringBuilder ist niemals ein Integer, er ist ein StringBuilder. Und auch durch casten wird er nicht zu einem Integer, es fliegt stattdessen eine ClassCastException (eben weil ein StringBuilder niemals ein Integer, sondern ein StringBuilder ist).

Entweder hast du dich nur unklar ausgedrückt, oder dein Gehirn befindet sich in einem Zustand tiefster Konfusion.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Ich verstehe das aktuelle Problem nicht. Wenn du Integer hast, kannst du damit rechnen (oder sie sogar auf den Stack packen). Bei welcher Zeile genau hängst du?
 

Extremefall

Bekanntes Mitglied
Das ist klar. Ich brauche nur für einen TR auch zweistellige Zahlen. Bisher hatte ich die Zahlen 1-9 als Buttons und bei einem Klick auf den Operandenstack gelegt. Allerdings muss man ja auch zweistellige Zahlen registrieren, so habe ich einen StringBuilder genommen, den immer bei einem Klick ergänzt, bis ein Operator geklickt wurde und dann den StringBuilder auf den Stack gelegt. Nun hänge ich bei folgendem Schritt: Wenn der zweite Operator niedriger oder gleichwertig ist, soll gerechnet werden. Dazu wird der erste und zweite operand von oben genommen und der operator ist der erste von oben vom Stapel. Nun müsste es wie folgt sein:

operanden.top();
operanden.pop();
operanden.top();
operanden.pop();
operatoren.top();
operatoren.pop();

Nun würde ich diese Werte gerne in Variablen speichern und damit rechnen. Da hänge ich fest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben