# Taschenrechner



## Ibet (18. Jun 2010)

Hallo,
ich habe von meinem Lehrer dieses Program bekommen und soll dieses beschreiben aber ich verstehe das nicht so ganz.
Würde mich freuen wenn ihr mir helfen könntet.

mfg Ibet



```
//##############################################
 //Hier ein Java-Applet für einen Tasschenrechner 
 //############################################## 

 import java.awt.*;
 import java.applet.*;

 //=====================
 //Taschenrechner Applet 
 //=====================

 public class MiniTaschenrechner extends Applet {		// extends Applet bekommt Infos 
 // Variablen
 TextField text;									   // Deklarierung
 String sText1, sText2;
 double wert1, wert2;
 String rechenOperator;
 boolean isFix;

 // Aufbau des Layouts
 
 public MiniTaschenrechner (){
 Panel rechnerRahmen = new Panel();

 text = new TextField("");
 text.setForeground(Color.BLACK);
 text.setEditable(false);

 Panel panelTaschenR = new Panel ();
 panelTaschenR.setLayout (new BorderLayout(0, 10));
 panelTaschenR.add("Center", text);
 rechnerRahmen.add("Center", panelTaschenR);

 Panel pKey = new Panel();							// Tasten werden Belegt
 pKey.setLayout(new GridLayout (6, 4, 6, 5));
 pKey.add(new Button("C"));
 pKey.add(new Button("x²"));
 pKey.add(new Button("\u221a"));
 pKey.add(new Button("%"));
 pKey.add(new Button("7"));
 pKey.add(new Button("8"));
 pKey.add(new Button("9"));
 pKey.add(new Button("/"));
 pKey.add(new Button("4"));
 pKey.add(new Button("5"));
 pKey.add(new Button("6"));
 pKey.add(new Button("*"));
 pKey.add(new Button("1"));
 pKey.add(new Button("2"));
 pKey.add(new Button("3"));
 pKey.add(new Button("-"));
 pKey.add(new Button("0"));
 pKey.add(new Button("."));
 pKey.add(new Button("="));
 pKey.add(new Button("+"));
 pKey.add(new Button("\u03c0"));

 panelTaschenR.add("South", pKey);

 setLayout(new BorderLayout(0, 0));
 add("North", rechnerRahmen);
 setBackground(Color.MAGENTA);

 wert1 = 0.0d;
 rechenOperator = "";
 wert2 = 0.0d;
 text.setText("0");
 isFix = true;
 }
 // Ende des Layouts

 //------------------
 // Der Event-Händler
 //------------------
 
 public boolean action(Event evt, Object arg){
 
 //Numerrischer Key-Input
	 
 if ("C".equals(arg)){
 wert1 =0.0d;
 rechenOperator = "";
 wert2 = 0.0d;
 text.setText("0");
 isFix = true;
 }
 else if (("0".equals(arg)) | ("1".equals(arg)) | ("2".equals(arg))		
 | ("3".equals(arg)) | ("4".equals(arg)) | ("5".equals(arg))
 | ("6".equals(arg)) | ("7".equals(arg)) | ("8".equals(arg))
 | ("9".equals(arg)) | (".".equals(arg))){
 if (isFix){
 sText2 = (String) arg;
 }
 else {
 sText2 = text.getText() + arg;
 }
 text.setText(sText2);
 isFix = false;
 }
 
 // Operationen
 
 else if (("+".equals(arg)) | ("-".equals(arg) | ("\u221a".equals(arg) | ("\u03c0").equals(arg) | ("x²".equals(arg)))
 | ("*".equals(arg)) | ("/".equals(arg)) | ("%").equals(arg) | ("=".equals(arg)))){
 sText1 = text.getText();
 wert2 = (Double.valueOf(sText1)).doubleValue();
 wert1 = Calculation(rechenOperator, wert1, wert2);
 Double dTemp = new Double(wert1);
 sText2 = dTemp.toString();
 text.setText(sText2);
 rechenOperator = (String) arg;
 isFix = true;
 }
 return true;
 }
 //--------------------
 // Ende Event-Händler
 //--------------------

 //------------
 //Berechnungen
 //------------
 
 private double Calculation(String rechenOperator, double wert1, double wert2){			// Hier werden die Befehlehe zum Rechnen geg.
 if ("+".equals(rechenOperator)) wert1 = wert1 + wert2;
 else if ("-".equals(rechenOperator)) wert1 = wert1 - wert2;
 else if ("*".equals(rechenOperator)) wert1 = wert1 * wert2;
 else if ("/".equals(rechenOperator)) wert1 = wert1 / wert2;
 else if ("\u221a".equals(rechenOperator)) wert1 = Math.sqrt(wert1);
 else if ("x²".equals(rechenOperator)) wert1 = wert1 * wert1;
 else if ("%".equals(rechenOperator)) wert1 = wert1 / 100;
 else wert1 = wert2;
 return wert1; 
 
 // Ende der Berechnung
 
 // Ende des Applets

 }
 }
```


----------



## Final_Striker (18. Jun 2010)

Was genau verstehst du nicht?


----------



## eRaaaa (18. Jun 2010)

Gibts spezielle Zeilen die du nicht verstehst? Hier wird dir sicherlich niemand jetzt das komplette Programm von a-z erklären wollen...was verstehst du nicht?


----------



## Ibet (18. Jun 2010)

29 bis 32; 105 bis 112 verstehe ich schon das ihr das nicht machen wollt wollt ich auch nicht


----------



## Appleleptiker (20. Jun 2010)

[JAVA=29]
Panel panelTaschenR = new Panel ();[/code]

Panels dienen der Strukturierung einer GUI.

[JAVA=30]
 panelTaschenR.setLayout (new BorderLayout(0, 10));[/code]

Ebenfalls Werkzeuge für GUI-Gestaltung. Weitere Informationen:
Java Standard: Grafische Oberflächen mit Swing: java awt LayoutManager: java awt BorderLayout ? Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher

[JAVA=31]
 panelTaschenR.add("Center", text);[/code]

Center ist hier die Positionierung des Textfeldes aus Zeile 25.


----------



## Ibet (23. Jun 2010)

Eine Frage habe ich noch und zwar handelt es sich um Zeile 25-27 , 64-68. Wäre nett wenn ihr mir das erklären könntet.

mfg Ibet


----------



## MonsterBit (23. Jun 2010)

```
text = new TextField("");
 text.setForeground(Color.BLACK);
 text.setEditable(false);
```

Also: In der ersten Zeile wird ein neues Textfeld deklariert. Dann wird in der zweiten Zeile die Schrift des Textfeldes auf schwarz gestellt. Und in der letzten Zeile, wird festgelegt, dass man in diesem Textfeld nichts mehr reinschreiben kann, oder den Text, der schon drin steht, nicht mehr verändern kann.


```
wert1 = 0.0d;
 rechenOperator = "";
 wert2 = 0.0d;
 text.setText("0");
 isFix = true;
```
Ja, erklärt sich doch eingentlich von selbst. In diesen Zeilen werden den Variablen Werte zugewiesen. Da gibst doch eingentlich nichts nicht zu verstehen. Mit text.setText("0") wird bewirkt, dass das Textfeld eine 0 anzeigt.


----------



## Ibet (23. Jun 2010)

Vielen, vielen Dank Leute


----------



## kooli (26. Jun 2010)

Hallo, leute ich lese manchmal ein paar themen durch und ich hatte schon öfters mal ein paar fragen aber ich wollte mich nicht anmelden und als gast wird man ja meisten nicht wahr genommen also habe ich mich angemeldet, damit ich fragen kann ob mir jemand die Zeile 103-114 erklären kann

vielen dank im vorraus kooli


----------



## Kekzii (2. Jul 2010)

Ibet hat gesagt.:


> ```
> // Operationen
> 
> else if (("+".equals(arg)) | ("-".equals(arg) | ("\u221a".equals(arg) | ("\u03c0").equals(arg) | ("x²".equals(arg)))
> ...




So wie ich das sehe wird hier nur überprüft welcher Rechenoperator ausgewählt wurde und danach wird berechnet => Calculation(String,double,double)

Ausserdem funktioniert PI nicht 
Hab mir das Programm noch nicht so genau angesehen deswegen kann ich nicht sagen woran es liegt


----------

