AWT Java-Taschenrechner, wie Stack richtig verwenden?

McCartney95

Mitglied
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:

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:

Final_Striker

Top Contributor
Du versucht einen leeren String (wahrscheinlich eine leere Eingabe) in eine Zahl umzuwandeln und das geht nicht.


Und wenn du deinen Variablen ordentliche Namen gibst, wirst du auch noch übermorgen wissen, was ein ButtonPlus für eine Funktion hat, was du bei einem Button22 sicherlich nicht mehr wissen wirst.
 

McCartney95

Mitglied
Das habe ich als erstes auch gedacht, aber nach paar Test habe ich festgestellt dass es das nicht sein kann. Ich habe extra einen "Test"-Button angelegt, der meinstack2 belegen soll, ein andere Testbutton hat diesen wieder aufgerufen. Das heißt, der Gleichbutton sollte nur berechnen, aber es kam exakt der gleiche Error raus.

EDIT: Gerade habe ich herausgefunden, dass derselbe Error kommt, wenn ich bei leerer Zeile auf speichern drücke und genau dann wenn ich diesen Wert aufrufen will.
 
Zuletzt bearbeitet:

McCartney95

Mitglied
OK, jetzt ist die Frage woher das kommt. Kann es denn an den Stacks von den Operatoren liegen? Weil wenn ich + drücke wird ja nur einer von 5 belegt.

EDIT: Muss daran liegen, weil ich wenn ich den Gleich-Button so ändere:

Java:
  public void button15_ActionPerformed(ActionEvent evt) {
    double a=Double.valueOf(textField1.getText());
    meinstack2.push(new Double(a));

    String s=String.valueOf(meinstack.pop());
    String t=String.valueOf(meinstack2.pop());

    double d=Double.valueOf(s);
    double h=Double.valueOf(t);
    textField1.setText(String.valueOf(s+t));
}

funktioniert es.

Gibt es dafür so etwas wie einen Defaultwert? Ich glaube bei manchen Klassen kann man 0 einsetzen und dann kann der Wert dennoch verändert werden.
 
Zuletzt bearbeitet:

McCartney95

Mitglied
Ich versuche mal zu erklären wie ich mir das vorstelle:

1.Ich gebe einen Wert ein
2.Ich drücke auf Plus
3.Der Plus-Button speichert das in einen Stack (damit ich den Wert beim Gleich-Button verwenden kann)
4.Textfield wird gelöscht, ich gebe meinen zweiten Wert ein
5.Ich drücke auf den Gleich-Button welcher meinen zweiten Wert in ein Stack ablegt (und gerade fällt mir auf, dass das überflüssig ist, auch nach Verbesserung kommt der gleiche Error)

Jeder Operator hat bei mir einen Stack, damit der Gleich-Button darauf zugreifen kann um damit zu rechnen. Ich habe so zu sagen Schubladen in denen Zahlen abgelegt werden, welche der Gleich-Button dann rausholen kann. Allerdings bleiben die anderen "Schubladen" leer, weil z.B der Minus-Button einen anderen Stack verwendet, welcher beim Gleich-Button abgeglichen wird.
 

Final_Striker

Top Contributor
1.Ich gebe einen Wert ein
2.Ich drücke auf Plus
3.Der Plus-Button speichert das in einen Stack (damit ich den Wert beim Gleich-Button verwenden kann)
4.Textfield wird gelöscht, ich gebe meinen zweiten Wert ein
5.Ich drücke auf den Gleich-Button welcher meinen zweiten Wert in ein Stack ablegt (und gerade fällt mir auf, dass das überflüssig ist, auch nach Verbesserung kommt der gleiche Error)

wenn ich das mache, bekomme ich eine

Java:
Exception in thread "AWT-EventQueue-1" java.util.EmptyStackException
 

tagedieb

Top Contributor
Wo nicht drin ist kann man auch nichts rauslesen... :autsch:
Dann wird wohl meinstack leer sein..

Ich habe aber nicht kapiert wieso du staendig von String nach Double und wieder zurueck konvertierst.
Was bezweckst du damit? Wieso nicht einfach mit double arbeiten?

In der letzten Zeile willst du da wirklich 2 Strings addieren???



Java:
  public void button15_ActionPerformed(ActionEvent evt) {
    double a=Double.valueOf(textField1.getText());
    meinstack2.push(new Double(a));
 
    String s=String.valueOf(meinstack.pop());
    String t=String.valueOf(meinstack2.pop());
 
    double d=Double.valueOf(s);
    double h=Double.valueOf(t);
    textField1.setText(String.valueOf(s+t));
}
 

McCartney95

Mitglied
Ich muss das so hin un
d her casten, weil der Editor den double aus Stack nicht ziehen kann(aus welchen Grund auch immer) aber den String. Dann mach ich den String zu einem Double um damit rechnen zu können, und dann wieder zu String weil der nur strings ins textfield einfügen kann. In der letzten Zeile addiert er die Doubles, wandelts in ein String um und dann setzt ers rein, d.h dort caste ich die beiden Doubles, deren Summe zu String wird. Nur das mit den Stacks ist blöd.

Gibt es eine Alternative dazu?
 

tagedieb

Top Contributor
Wo werden denn doubles addiert??

Variablen s und t sind Strings!!! Doube d und h werden hier nicht verwendet.


Alernativen? Klar gibt es die.

Speichere den aktuellen Zahlenwert in einer double variable und den operator in einem char. Wozu brauchst du einen Stack? Oder wieso denkst du den benutzen zu muessen?
 

McCartney95

Mitglied
Oh, jetzt sehe ich das erst, eie dumm von mir. Wie mach ich denn Variabeln auf die jeder Button zugreifen kann? Muss ich einfach die Variabeln ganz oben anmelden? Und wie speicher ich char operatoren(leider ernst gemeint)? Aber den Rest kann ich dann, einfach switch-case verwenden.
 

McCartney95

Mitglied
So habs hingekriegt:

Java:
  public void button15_ActionPerformed(ActionEvent evt) {
  double e=Double.valueOf(textField1.getText());
  
  if(a!=0)
  textField1.setText(String.valueOf(a+e));

      else if(b!=0)
   textField1.setText(String.valueOf(b-e));

     else if(c!=0)
   textField1.setText(String.valueOf(c*e));
     else
   textField1.setText(String.valueOf(c/e));




}

Funktioniert reibungslos :D
 

tagedieb

Top Contributor
Auf Instanzvariablen kannst du von jeder Methode zugreifen. Genau gleich wie das 'textfield1. Da benutzt du ja auch ueberall.

Definier einfach:

Java:
	private double value;
	private char operator; // +, - *, /


Ich hab hier mal ein paar Anpassungen gemacht. Du brauchst auch nicht fuer jeden Button einen eigenen ActionListener. Die Zahlen koennen alle denselben ActionListener verwenden. Mit den ActionListener fuer die Operationen koennte man es aehnlich machen.

Java:
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();

	private double value;
	private char operator;
	// 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.setActionCommand("1");
		button1.addActionListener(enterDigitListener);
		cp.add(button1);
		button2.setBounds(56, 112, 41, 41);
		button2.setLabel("2");
		button2.setActionCommand("2");
		button2.addActionListener(enterDigitListener);
		cp.add(button2);
		button3.setBounds(104, 112, 41, 41);
		button3.setLabel("3");
		button3.setActionCommand("3");
		button3.addActionListener(enterDigitListener);
		cp.add(button3);
		button4.setBounds(8, 160, 41, 41);
		button4.setLabel("4");
		button4.setActionCommand("4");
		button4.addActionListener(enterDigitListener);
		cp.add(button4);
		button5.setBounds(56, 160, 41, 41);
		button5.setLabel("5");
		button5.setActionCommand("5");
		button5.addActionListener(enterDigitListener);
		cp.add(button5);
		button6.setBounds(104, 160, 41, 41);
		button6.setLabel("6");
		button6.setActionCommand("6");
		button6.addActionListener(enterDigitListener);
		cp.add(button6);
		button7.setBounds(8, 208, 41, 41);
		button7.setLabel("7");
		button7.setActionCommand("7");
		button7.addActionListener(enterDigitListener);
		cp.add(button7);
		button8.setBounds(56, 208, 41, 41);
		button8.setLabel("8");
		button8.setActionCommand("8");
		button8.addActionListener(enterDigitListener);
		cp.add(button8);
		button9.setBounds(104, 208, 41, 41);
		button9.setLabel("9");
		button9.setActionCommand("9");
		button9.addActionListener(enterDigitListener);
		cp.add(button9);
		button10.setBounds(56, 256, 41, 41);
		button10.setLabel("0");
		button10.setActionCommand("0");
		button10.addActionListener(enterDigitListener);
		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
	private ActionListener enterDigitListener = new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			processInputAndCalculateNewValue();
			String s = textField1.getText() + e.getActionCommand();
			textField1.setText(s);
		}
	};

	private void processInputAndCalculateNewValue() {
		if (textField1.getText().length() > 0) {
			double input = Double.valueOf(textField1.getText());
			switch (operator) {
			case '+':
				value += input;
				break;
			case '-':
				value -= input;
				break;
			case '*':
				value *= input;
				break;
			case '/':
				value /= input;
				break;

			case '=':
				value = input;
				break;
				
			default:
				value = input;
			}
		}
		textField1.setText("");
		
	}

	public void button11_ActionPerformed(ActionEvent evt) {
		processInputAndCalculateNewValue();
		operator = '+';
	}

	public void button12_ActionPerformed(ActionEvent evt) {
		processInputAndCalculateNewValue();
		operator = '-';
	}

	public void button13_ActionPerformed(ActionEvent evt) {
		processInputAndCalculateNewValue();
		operator = '*';
	}

	public void button14_ActionPerformed(ActionEvent evt) {
		processInputAndCalculateNewValue();
		operator = '/';
	}

	public void button15_ActionPerformed(ActionEvent evt) {
		processInputAndCalculateNewValue();
		operator = '=';
		textField1.setText(String.valueOf(value));
	}

	public void button17_ActionPerformed(ActionEvent evt) {
		textField1.setText("");
		value = 0d;
	}

	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

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
C Taschenrechner in Java AWT, Swing, JavaFX & SWT 7
K Java-Taschenrechner AWT, Swing, JavaFX & SWT 1
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
Juelin Java <-> Delphi AWT, Swing, JavaFX & SWT 3
H Exceptions seit java: 1.6.0_65 Umstellung AWT, Swing, JavaFX & SWT 3
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M JavaFX java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found AWT, Swing, JavaFX & SWT 5
J Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
thor_norsk Java - Allgemeine - Frage AWT, Swing, JavaFX & SWT 14
W Kennt jemand Dear ImGui (und den Java-Wrapper dazu)? AWT, Swing, JavaFX & SWT 0
B Java Projekt mit JavaFX und jfoenix ausführbar machen AWT, Swing, JavaFX & SWT 46
D JAVA Schieberegler AWT, Swing, JavaFX & SWT 6
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
P Fehlermeldung: Error: Could not find or load main class set Caused by: java.lang.ClassNotFoundException: set AWT, Swing, JavaFX & SWT 5
Encera Java FX im Eclipse-Marketplace nichtmehr auffindbar AWT, Swing, JavaFX & SWT 6
_user_q Versionscode aus build.gradle in Java-Klasse ausgeben lassen AWT, Swing, JavaFX & SWT 14
M Java Dateien kopieren mit Fortschrittsbalken AWT, Swing, JavaFX & SWT 13
M Frage zu Java Bundesligaverwaltung AWT, Swing, JavaFX & SWT 7
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
E 3D-Grafik Java Fatal error bei LWJGL AWT, Swing, JavaFX & SWT 2
Heldderschatten Java Events und Interfaces AWT, Swing, JavaFX & SWT 18
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
U was bewirkt die methode fill und unterschied zu anderen fill Methoden in 2dgraphics? (Java)? AWT, Swing, JavaFX & SWT 6
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
E Java-TexturePaint sehr langsam AWT, Swing, JavaFX & SWT 9
N Java MySQL Datenbank durchsuchen? AWT, Swing, JavaFX & SWT 7
maximstein JavaFX WebView - java.lang.NoSuchMethodError: 'boolean com.sun.prism.ResourceFactory.isDisposed()' AWT, Swing, JavaFX & SWT 4
Splayfer Custom Font in AttributedString Java AWT, Swing, JavaFX & SWT 4
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
izoards *.doc Seitenränder per Java setzen... AWT, Swing, JavaFX & SWT 14
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
N Java Mouse Listiner macht alles zusammen AWT, Swing, JavaFX & SWT 4
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
M Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found AWT, Swing, JavaFX & SWT 14
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
T Swing DPI-Skalierung und Java 2D unter Java 11 (und Windows 10) AWT, Swing, JavaFX & SWT 2
J Spiel mit Java AWT, Swing, JavaFX & SWT 9
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
N FXMLLoader.load java.lang.RuntimeException: Gradle AWT, Swing, JavaFX & SWT 2
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
M Jogl und Java 3d AWT, Swing, JavaFX & SWT 0
S0PEX JavaFX Java 8 auf 15 migrieren OpenJFX mit Gradle eingebunden, jedoch nicht gefunden !? AWT, Swing, JavaFX & SWT 4
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
V Java-Zeichenfeld mit AWT AWT, Swing, JavaFX & SWT 3
N java Gui friert scheinbar zufällig ein AWT, Swing, JavaFX & SWT 5
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
P Java Fx einrichten AWT, Swing, JavaFX & SWT 2
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
MiMa Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Trèfle Ausklappbare Diagramme in Java AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
K JAVA FX Constraints AWT, Swing, JavaFX & SWT 2
F Java FX und webcam AWT, Swing, JavaFX & SWT 1
T Wie kann man in java aufwendige grafiken programmieren AWT, Swing, JavaFX & SWT 1
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
J Java SWT Tabelleninhalt formattieren AWT, Swing, JavaFX & SWT 10
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
K Swing AWT-EventQueue-1 java.lang.NoClassDefFoundError bei setVisible(true) AWT, Swing, JavaFX & SWT 3
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
J Parallele Aktionen in Java FX richtig durchführen. AWT, Swing, JavaFX & SWT 5
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
M JavaFX java.lang.IllegalStateException: Location is not set. AWT, Swing, JavaFX & SWT 9
L Java- CardLayout AWT, Swing, JavaFX & SWT 10
M Java zeichnet nicht pixelgenau AWT, Swing, JavaFX & SWT 40
B Swing Eclipse is running under 0, but this Java project has a 1.6 Java compliance level, so WindowBuilder AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
S Java Gui AWT, Swing, JavaFX & SWT 5
R Sierpinski Dreieck mit Java FX AWT, Swing, JavaFX & SWT 4
Flynn java.lang.UnsupportedOperationException: Not supported yet AWT, Swing, JavaFX & SWT 7
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
N Aktualisierung des Fensters AWT Java ohne Ruckeln AWT, Swing, JavaFX & SWT 3
MiMa Java, Maven Projekte nach JavaFX? AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16

Ähnliche Java Themen

Neue Themen


Oben