Hallo liebe Javagemeinde,
seit gestern versuche ich einen Taschenrechner zu programmieren und zwar mit AWT. Ich konnte Wurzelfunktion, Sinus usw. problemlos programmieren, allerdings harperts nun beim Gleichbutton. Heute morgen habe ich noch versucht, dass er das Textfield ausliest (per scanner) und dann das Ergebnis zeigt. Doch daran bin ich gescheitert. Nun habe ich es mit stack versucht. Natürlich erst in einer kleineren App ERFOLGREICH getestet. Als ich das ganze jedoch in den Taschenrechner implementiert habe, startet das Applet zwar, aber sobald ich auf den Gleichbutton drücke, kommt dieser Error raus:
Merkwürdigerweise hat er kein Problem beim Ersten stack.
Hier ist mein Code:
Meine Vermutung ist, da es mehrere Stacks gibt, aber nur einer bzw. zwei gefüllt werden, dass er das ausschmeißt, jedoch habe ich dann festgelegte Werte zum Test eingefügt in die Stack, aber wieder das gleiche Ergebnis.
Es tut mir wirklich Leid, dass das ganze auf den ersten Blick unübersichtlich aussieht, aber ich arbeite seit Stunden an diesem Applet und kann mich kaum konzentrieren, aber das sollte keine gänginge Entschuldigung sein.
Ich wäre sehr dankbar wenn ihr mir helfen könntet.
LG McCartney
seit gestern versuche ich einen Taschenrechner zu programmieren und zwar mit AWT. Ich konnte Wurzelfunktion, Sinus usw. problemlos programmieren, allerdings harperts nun beim Gleichbutton. Heute morgen habe ich noch versucht, dass er das Textfield ausliest (per scanner) und dann das Ergebnis zeigt. Doch daran bin ich gescheitert. Nun habe ich es mit stack versucht. Natürlich erst in einer kleineren App ERFOLGREICH getestet. Als ich das ganze jedoch in den Taschenrechner implementiert habe, startet das Applet zwar, aber sobald ich auf den Gleichbutton drücke, kommt dieser Error raus:
Java:
Exception in thread "AWT-EventQueue-1" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011)
at java.lang.Double.valueOf(Double.java:504)
at Taschenrechner2.button15_ActionPerformed(Taschenrechner2.java:351)
at Taschenrechner2$15.actionPerformed(Taschenrechner2.java:175)
at java.awt.Button.processActionEvent(Button.java:409)
at java.awt.Button.processEvent(Button.java:377)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Merkwürdigerweise hat er kein Problem beim Ersten stack.
Hier ist mein Code:
Java:
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, 370);
// 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
}
Meine Vermutung ist, da es mehrere Stacks gibt, aber nur einer bzw. zwei gefüllt werden, dass er das ausschmeißt, jedoch habe ich dann festgelegte Werte zum Test eingefügt in die Stack, aber wieder das gleiche Ergebnis.
Es tut mir wirklich Leid, dass das ganze auf den ersten Blick unübersichtlich aussieht, aber ich arbeite seit Stunden an diesem Applet und kann mich kaum konzentrieren, aber das sollte keine gänginge Entschuldigung sein.
Ich wäre sehr dankbar wenn ihr mir helfen könntet.
LG McCartney
Zuletzt bearbeitet: