C
Chili
Gast
Ich hoffe mal das hier wird die letzte Frage, aber ich kanns nicht versprechen =)
Also in meinem Taschenrechner steht unter anderem folgender Quelltext:
Wenn ich in der Methode rechnen() ohne if-Entscheidung nur einen Rechenweg angebe funktioniert der Rechner tadellos. Mein Ziel ist natürlich hinzubekommen, dass wenn unterschiedlich Rechenarten geklickt werden, dann auch mit denen gerechnet wird - ist ja selbstverständlich. Und da dachte ich mir so könnte das funktionieren. Tuts aber nicht. Kann es sein dass ich anstatt rechnen() rechnen(String zeichen) hinschreiben muss?
Also in meinem Taschenrechner steht unter anderem folgender Quelltext:
Code:
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btEins){
dazuSchreiben("1");
}
if (e.getSource() == btZwei){
dazuSchreiben("2");
}
if (e.getSource() == btDrei){
dazuSchreiben("3");
}
if (e.getSource() == btVier){
dazuSchreiben("4");
}
if (e.getSource() == btFuenf){
dazuSchreiben("5");
}
if (e.getSource() == btSechs){
dazuSchreiben("6");
}
if (e.getSource() == btSieben){
dazuSchreiben("7");
}
if (e.getSource() == btAcht){
dazuSchreiben("8");
}
if (e.getSource() == btNeun){
dazuSchreiben("9");
}
if (e.getSource() == btNull){
dazuSchreiben("0");
}
if (e.getSource() == btPlus){
String zeichen = "+";
String zwischen = tfAnzeige.getText();
ersteZahl = Double.parseDouble(zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btMinus){
String zeichen = "-";
String zwischen = tfAnzeige.getText();
ersteZahl = Double.parseDouble(zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btMal){
String zeichen = "*";
String zwischen = tfAnzeige.getText();
ersteZahl = Double.parseDouble(zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btGeteilt){
String zeichen = "/";
String zwischen = tfAnzeige.getText();
ersteZahl = Double.parseDouble(zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btGleich){
String zwischen = tfAnzeige.getText();
zweiteZahl = Double.parseDouble(zwischen);
rechnen();
}
if (e.getSource() == btPunkt){
String zeichen = ".";
tfAnzeige.setText(tfAnzeige.getText()+zeichen);
}
}
public void dazuSchreiben(String neueZiffer) {
if (zeichenEingegeben == 1) {
tfAnzeige.setText(neueZiffer);
zeichenEingegeben = 0;
}
else
tfAnzeige.setText(tfAnzeige.getText()+neueZiffer);
}
public void rechnen() {
if (zeichen == "+") {
ergebnis = ersteZahl + zweiteZahl;
String endergebnis = new String ("" + ergebnis);
tfAnzeige.setText(endergebnis);
}
if (zeichen == "-") {
ergebnis = ersteZahl - zweiteZahl;
String endergebnis = new String ("" + ergebnis);
tfAnzeige.setText(endergebnis);
}
if (zeichen == "*") {
ergebnis = ersteZahl * zweiteZahl;
String endergebnis = new String ("" + ergebnis);
tfAnzeige.setText(endergebnis);
}
if (zeichen == "/") {
ergebnis = ersteZahl / zweiteZahl;
String endergebnis = new String ("" + ergebnis);
tfAnzeige.setText(endergebnis);
}
}
Wenn ich in der Methode rechnen() ohne if-Entscheidung nur einen Rechenweg angebe funktioniert der Rechner tadellos. Mein Ziel ist natürlich hinzubekommen, dass wenn unterschiedlich Rechenarten geklickt werden, dann auch mit denen gerechnet wird - ist ja selbstverständlich. Und da dachte ich mir so könnte das funktionieren. Tuts aber nicht. Kann es sein dass ich anstatt rechnen() rechnen(String zeichen) hinschreiben muss?