C
Chris_21
Gast
Hi Leute,
ich poste erstmal meinen Code:
Das ganze muss am Ende ein Taschenrechner werden...Über das ActionEvent bekomme ich die gedrückten Buttons. Ich finde nur keinen sinnvollen weg, wie ich mit den Zahlen umgehen soll. Ich hatte schon versucht die erste Zahl zu speichern auf die Operation zu warten und dann die zweite Zahl zu holen (was mir nicht gelungen ist dafür habe ich die Methode holeZahl geschrieben), mom versuche ich es über eine Stringkette komme aber nicht wirklich weiter
Hat jmd einen Idee wie ich das am besten anpacke? Bzw. kann mir auch was zum Code schreiben, ich muss dazu sagen, dass ich ziemlicher Anfänger bin und mir mittlerweile auch die Zeit davonläuft :cry: ..
Für jeden Tipp und Hinweis wäre ich sehr dankbar
Gruß
Chris
ich poste erstmal meinen Code:
Code:
import java.awt.event.*;
import java.awt.Button;
import java.lang.Double;
import java.util.StringTokenizer;
public class meinActionListener implements ActionListener {
public C17Layout2 f;
private String zahl;
private String z=null;
private char c;
private Object obj;
private double z1;
private double z2;
private double zw;
//Konstruktor übergibt Hauptklasse mit Komponenten:
public meinActionListener(C17Layout2 f) {
this.f = f;
}
public void actionPerformed(ActionEvent e) {
char c = e.getActionCommand().charAt(0);
Object obj = e.getSource();
this.c = c;
this.obj=obj;
//speicher mir die eingebenen Zahlen in einer Kette
if (obj instanceof Button)
if (Character.getType(c) == Character.DECIMAL_DIGIT_NUMBER)
{
f.eingabefeld.setText(f.eingabefeld.getText() +c);
zahl=f.eingabefeld.getText();
}
if (c=='+' | c=='-'| c=='*' | c=='/')
{
zahl = (f.eingabefeld.getText() +c);
f.eingabefeld.setText("");
stringKette();
}
if (obj == f.btnOff) System.exit(0);
//wenn das = gedrückt wird nehme mir die
if (c=='=')
{
stringKette();
f.eingabefeld.setText("");
berechne();
}
if (obj==f.btnC)
{
z=null;
}
}
public void stringKette()
{
if (z==null)
{
z=zahl;
}
else
z = z + zahl ;
}
/*public double holeZahl() {
//eingebene Zahl wird gespeichert
if (obj instanceof Button)
if (Character.getType(c) == Character.DECIMAL_DIGIT_NUMBER) {
f.eingabefeld.setText(f.eingabefeld.getText()+c);
}
zw= Double.parseDouble(f.eingabefeld.getText());
System.out.println(zw);
return zw;
//z1= Double.parseDouble(f.eingabefeld.getText());
}
*/
public void berechne(){
//wenn eine Operation gedrückt wurde nehme mir die StringKette auseinander und berechnedie Zahlen
char op;
String []o = null;
StringTokenizer st = new StringTokenizer(z, "+ - * /", true);
for (int i=0; st.hasMoreElements() ; i++)
{
//o[i] = st.nextToken();
System.out.print(i);
}
}
/* while (st.hasMoreTokens()) {
o= st.nextToken();
/*op = o.charAt(0);
if (op=='+')
{
//z1=Double.parseDouble(o);
//o= st.nextToken();
//z2=Double.parseDouble(o);
//zw=z1+z2;
//System.out.println(o);
}
*/
}
Das ganze muss am Ende ein Taschenrechner werden...Über das ActionEvent bekomme ich die gedrückten Buttons. Ich finde nur keinen sinnvollen weg, wie ich mit den Zahlen umgehen soll. Ich hatte schon versucht die erste Zahl zu speichern auf die Operation zu warten und dann die zweite Zahl zu holen (was mir nicht gelungen ist dafür habe ich die Methode holeZahl geschrieben), mom versuche ich es über eine Stringkette komme aber nicht wirklich weiter
Für jeden Tipp und Hinweis wäre ich sehr dankbar
Gruß
Chris