Vielen dank, das mit dem Feld habe ich später auch geändert
Allerdings habe ich einen „Strategiewechsel“ vollzogen und versuche es grade mit Stacks:
import java.awt.\*;
import java.awt.event.\*;
import javax.swing.\*;
import javax.swing.event.\*;
import java.util.Stack;
/\*\*
\*
\* Beschreibung
\*
\* @version 1.0 vom 29.02.2012
\* @author
\*/
public class Taschenrechner2 extends JApplet {
// Anfang Attribute
private TextField textField1 = new TextField();
private Button button1 = new Button();
private Button button2 = new Button();
private Button button3 = new Button();
private Button button4 = new Button();
private Button button5 = new Button();
private Button button6 = new Button();
private Button button7 = new Button();
private Button button8 = new Button();
private Button button9 = new Button();
private Button button10 = new Button();
private Button button11 = new Button();
private Button button12 = new Button();
private Button button13 = new Button();
private Button button14 = new Button();
private Button button15 = new Button();
private Button button17 = new Button();
private Button button16 = new Button();
private Button button18 = new Button();
private Button button19 = new Button();
private Button button20 = new Button();
private Button button21 = new Button();
private Button button22 = new Button();
private TextField textField2 = new TextField();
Stack meinstack = new Stack();
Stack meinstack2 = new Stack();
Stack meinstack3 = new Stack();
Stack meinstack4 = new Stack();
Stack meinstack5 = new Stack();
// Ende Attribute
public void init() {
Container cp = getContentPane();
cp.setLayout(null);
cp.setBounds(0, 0, 210, 426);
// Anfang Komponenten
textField1.setBounds(0, 0, 225, 41);
textField1.setVisible(true);
textField1.setEditable(false);
textField1.setCursor(new Cursor(Cursor.HAND\_CURSOR));
textField1.setBackground(Color.WHITE);
cp.add(textField1);
button1.setBounds(8, 112, 41, 41);
button1.setLabel("1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button1\_ActionPerformed(evt);
}
});
cp.add(button1);
button2.setBounds(56, 112, 41, 41);
button2.setLabel("2");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button2\_ActionPerformed(evt);
}
});
cp.add(button2);
button3.setBounds(104, 112, 41, 41);
button3.setLabel("3");
button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button3\_ActionPerformed(evt);
}
});
cp.add(button3);
button4.setBounds(8, 160, 41, 41);
button4.setLabel("4");
button4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button4\_ActionPerformed(evt);
}
});
cp.add(button4);
button5.setBounds(56, 160, 41, 41);
button5.setLabel("5");
button5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button5\_ActionPerformed(evt);
}
});
cp.add(button5);
button6.setBounds(104, 160, 41, 41);
button6.setLabel("6");
button6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button6\_ActionPerformed(evt);
}
});
cp.add(button6);
button7.setBounds(8, 208, 41, 41);
button7.setLabel("7");
button7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button7\_ActionPerformed(evt);
}
});
cp.add(button7);
button8.setBounds(56, 208, 41, 41);
button8.setLabel("8");
button8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button8\_ActionPerformed(evt);
}
});
cp.add(button8);
button9.setBounds(104, 208, 41, 41);
button9.setLabel("9");
button9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button9\_ActionPerformed(evt);
}
});
cp.add(button9);
button10.setBounds(56, 256, 41, 41);
button10.setLabel("0");
button10.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button10\_ActionPerformed(evt);
}
});
cp.add(button10);
button11.setBounds(152, 112, 41, 41);
button11.setLabel("+");
button11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button11\_ActionPerformed(evt);
}
});
cp.add(button11);
button12.setBounds(152, 160, 41, 41);
button12.setLabel("-");
button12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button12\_ActionPerformed(evt);
}
});
cp.add(button12);
button13.setBounds(152, 208, 41, 41);
button13.setLabel("\*");
button13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button13\_ActionPerformed(evt);
}
});
cp.add(button13);
button14.setBounds(152, 256, 41, 41);
button14.setLabel("/");
button14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button14\_ActionPerformed(evt);
}
});
cp.add(button14);
button15.setBounds(104, 256, 41, 41);
button15.setLabel("=");
button15.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button15\_ActionPerformed(evt);
}
});
cp.add(button15);
button17.setBounds(8, 304, 89, 33);
button17.setLabel("DELETE");
button17.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button17\_ActionPerformed(evt);
}
});
cp.add(button17);
button16.setBounds(8, 256, 41, 41);
button16.setLabel(".");
button16.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button16\_ActionPerformed(evt);
}
});
cp.add(button16);
button18.setBounds(104, 304, 89, 33);
button18.setLabel("+/-");
button18.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button18\_ActionPerformed(evt);
}
});
cp.add(button18);
button19.setBounds(8, 64, 41, 41);
button19.setLabel("Sin");
button19.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button19\_ActionPerformed(evt);
}
});
cp.add(button19);
button20.setBounds(56, 64, 41, 41);
button20.setLabel("STO");
button20.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button20\_ActionPerformed(evt);
}
});
cp.add(button20);
button21.setBounds(104, 64, 41, 41);
button21.setLabel("RCL");
button21.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button21\_ActionPerformed(evt);
}
});
cp.add(button21);
button22.setBounds(152, 64, 41, 41);
button22.setLabel("Sqrt");
button22.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button22\_ActionPerformed(evt);
}
});
cp.add(button22);
textField2.setBounds(8, 352, 185, 33);
textField2.setVisible(false);
cp.add(textField2);
// Ende Komponenten
}
// Anfang Methoden
public void button1\_ActionPerformed(ActionEvent evt) {
int i = 1;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
meinstack.push(new Double(13));
}
public void button2\_ActionPerformed(ActionEvent evt) {
meinstack.push(new Integer(13));
int i = 2;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button3\_ActionPerformed(ActionEvent evt) {
int i = 3;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button4\_ActionPerformed(ActionEvent evt) {
int i = 4;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button5\_ActionPerformed(ActionEvent evt) {
int i = 5;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button6\_ActionPerformed(ActionEvent evt) {
int i = 6;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button7\_ActionPerformed(ActionEvent evt) {
int i = 7;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button8\_ActionPerformed(ActionEvent evt) {
int i = 8;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button9\_ActionPerformed(ActionEvent evt) {
int i = 9;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button10\_ActionPerformed(ActionEvent evt) {
int i = 0;
String s;
s=textField1.getText()+String.valueOf(i);
textField1.setText(s);
}
public void button11\_ActionPerformed(ActionEvent evt) {
double a=Double.valueOf(textField1.getText());
meinstack.push(new Double(a));
textField1.setText("");
}
public void button12\_ActionPerformed(ActionEvent evt) {
double a=Double.valueOf(textField1.getText());
meinstack3.push(new Double(a));
textField1.setText("");
}
public void button13\_ActionPerformed(ActionEvent evt) {
double a=Double.valueOf(textField1.getText());
meinstack4.push(new Double(a));
textField1.setText("");
}
public void button14\_ActionPerformed(ActionEvent evt) {
double a=Double.valueOf(textField1.getText());
meinstack5.push(new Double(a));
textField1.setText("");
}
public void button15\_ActionPerformed(ActionEvent evt) {
double a=Double.valueOf(textField1.getText());
meinstack2.push(new Double(a));
String s=String.valueOf(meinstack.pop()); //+ gehört s
String t=String.valueOf(meinstack2.pop()); //gehört dem Gleich
String u=String.valueOf(meinstack3.pop()); //- gehört t
String v=String.valueOf(meinstack4.pop()); //\* gehört u
String w=String.valueOf(meinstack5.pop()); // / gehört v
//gehört dem Gleich
double d=Double.valueOf(s); //+
double h=Double.valueOf(t); //=
double e=Double.valueOf(u); //-
double f=Double.valueOf(v); //\*
double g=Double.valueOf(w); // /
if (d==Double.valueOf(s)) {
textField1.setText(String.valueOf(d+h));
} else if (e!=0) {
textField1.setText(String.valueOf(e-h));
} else if (f!=0) {
textField1.setText(String.valueOf(f\*h));
} else if (g!=0) {
textField1.setText(String.valueOf(g/h));
} else {
textField1.setText(String.valueOf(h-h));
}
}
public void button17\_ActionPerformed(ActionEvent evt) {
textField1.setText("");
}
public void button16\_ActionPerformed(ActionEvent evt) {
String o= ".";
String s;
s=textField1.getText()+String.valueOf(o);
textField1.setText(s);
}
public void button18\_ActionPerformed(ActionEvent evt) {
String s;
s=textField1.getText();
textField1.setText("-"+s);
}
public void button19\_ActionPerformed(ActionEvent evt) {
int i = 9;
double c;
double a;
a=Double.valueOf(textField1.getText());
String s;
c=Math.sin(a);
s=String.valueOf(c);
textField1.setText(s);
}
public void button20\_ActionPerformed(ActionEvent evt) {
String s;
double a;
a=Double.valueOf(textField1.getText());
s=String.valueOf(a);
textField2.setText(s);
}
public void button21\_ActionPerformed(ActionEvent evt) {
String s;
double a;
a=Double.valueOf(textField2.getText());
s=String.valueOf(a);
textField1.setText(s);
}
public void button22\_ActionPerformed(ActionEvent evt) {
int i = 9;
double c;
double a;
a=Double.valueOf(textField1.getText());
String s;
c=Math.sqrt(a);
s=String.valueOf(c);
textField1.setText(s);
}
// Ende Methoden
}
Jedoch kommt folgender Error raus:
Exception in thread "AWT-EventQueue-1" java.util.EmptyStackException
at java.util.Stack.peek(Stack.java:102)
at java.util.Stack.pop(Stack.java:84)
at Taschenrechner2.button15\_ActionPerformed(Taschenrechner2.java:354)
at Taschenrechner2$15.actionPerformed(Taschenrechner2.java:175)
at java.awt.Button.processActionEvent(Button.java:409)
at java.awt.Button.processEvent(Button.java:377)
Selbstverständlich habe ich vorher noch einzelne Elemente mit Stacks getestet, alles lief reibungslos(ich konnte zwei stacks miteinander addieren), und als ich das ganze zusammengefügt hab ging es nicht mehr.