Hey Leute...
ich leite ein Projekt in der Schule bei dem wir am Ende des Projekts einen Taschenrechner programmiert haben sollten in einem Kurs. Nun habe ich gedacht "Eigentlich doch kein Problem" Und habe erst gestern angefangen die Musterlösung zu schreiben! Mh naja, irgendwie will er nicht funktionieren und ich komme einfach nicht dahinter, wo mein Denkfehler (ich denke, es ist ein Denkfehler und kein Programmier fehler ansich...) liegt.
Wäre nett, wenn ihr mal drüberschauen könntet, vielleicht sticht euch ja was ins Auge?!
Vielen Dank schonmal,
Jens
ich leite ein Projekt in der Schule bei dem wir am Ende des Projekts einen Taschenrechner programmiert haben sollten in einem Kurs. Nun habe ich gedacht "Eigentlich doch kein Problem" Und habe erst gestern angefangen die Musterlösung zu schreiben! Mh naja, irgendwie will er nicht funktionieren und ich komme einfach nicht dahinter, wo mein Denkfehler (ich denke, es ist ein Denkfehler und kein Programmier fehler ansich...) liegt.
Wäre nett, wenn ihr mal drüberschauen könntet, vielleicht sticht euch ja was ins Auge?!
Vielen Dank schonmal,
Jens
Code:
Fenster.java
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.TextField;
public class Fenster extends Frame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;
private Button btn5;
private Button btn6;
private Button btn7;
private Button btn8;
private Button btn9;
private Button btn0;
private Button btnMal;
private Button btnPlus;
private Button btnGeteilt;
private Button btnMinus;
private TextField txtgesamtErgebnis;
private TextField txtterm;
public Fenster()
{
btn1 = new Button("1");
btn2 = new Button("2");
btn3 = new Button("3");
btn4 = new Button("4");
btn5 = new Button("5");
btn6 = new Button("6");
btn7 = new Button("7");
btn8 = new Button("8");
btn9 = new Button("9");
btn0 = new Button("0");
btnMal = new Button("*");
btnGeteilt = new Button("/");
btnPlus = new Button("+");
btnMinus= new Button("-");
txtgesamtErgebnis = new TextField("0");
txtgesamtErgebnis.setEditable(false);
txtterm = new TextField("0");
txtterm.setEditable(false);
setTitle("Taschenrechner");
setSize(300,100);
setLayout(new GridLayout(4,4));
btn1.addActionListener(new ActionEvents(this));
btn2.addActionListener(new ActionEvents(this));
btn3.addActionListener(new ActionEvents(this));
btn4.addActionListener(new ActionEvents(this));
btn5.addActionListener(new ActionEvents(this));
btn6.addActionListener(new ActionEvents(this));
btn7.addActionListener(new ActionEvents(this));
btn8.addActionListener(new ActionEvents(this));
btn9.addActionListener(new ActionEvents(this));
btn0.addActionListener(new ActionEvents(this));
btnPlus.addActionListener(new ActionEvents(this));
btnMinus.addActionListener(new ActionEvents(this));
btnMal.addActionListener(new ActionEvents(this));
btnGeteilt.addActionListener(new ActionEvents(this));
add(btn1);
add(btn2);
add(btn3);
add(btn4);
add(btn5);
add(btn6);
add(btn7);
add(btn8);
add(btn9);
add(btn0);
add(btnPlus);
add(btnMinus);
add(btnMal);
add(btnGeteilt);
add(txtgesamtErgebnis);
add(txtterm);
addWindowListener(new WindowManager());
setVisible(true);
}
public void aktualisiereErgebnis(double no){
txtgesamtErgebnis.setText(""+no);
}
public void aktualisiereTerm(String text){
txtterm.setText(text);
}
/**
* @return Returns the btn0.
*/
public Button getBtn0() {
return btn0;
}
/**
* @return Returns the btn1.
*/
public Button getBtn1() {
return btn1;
}
/**
* @return Returns the btn2.
*/
public Button getBtn2() {
return btn2;
}
/**
* @return Returns the btn3.
*/
public Button getBtn3() {
return btn3;
}
/**
* @return Returns the btn4.
*/
public Button getBtn4() {
return btn4;
}
/**
* @return Returns the btn5.
*/
public Button getBtn5() {
return btn5;
}
/**
* @return Returns the btn6.
*/
public Button getBtn6() {
return btn6;
}
/**
* @return Returns the btn7.
*/
public Button getBtn7() {
return btn7;
}
/**
* @return Returns the btn8.
*/
public Button getBtn8() {
return btn8;
}
/**
* @return Returns the btn9.
*/
public Button getBtn9() {
return btn9;
}
/**
* @return Returns the btnGeteilt.
*/
public Button getBtnGeteilt() {
return btnGeteilt;
}
/**
* @return Returns the btnMal.
*/
public Button getBtnMal() {
return btnMal;
}
/**
* @return Returns the btnMinus.
*/
public Button getBtnMinus() {
return btnMinus;
}
/**
* @return Returns the btnPlus.
*/
public Button getBtnPlus() {
return btnPlus;
}
/**
* @return Returns the txtgesamtErgebnis.
*/
public TextField getTxtgesamtErgebnis() {
return txtgesamtErgebnis;
}
/**
* @return Returns the txtterm.
*/
public TextField getTxtterm() {
return txtterm;
}
/**
* @param btn0 The btn0 to set.
*/
public void setBtn0(Button btn0) {
this.btn0 = btn0;
}
/**
* @param btn1 The btn1 to set.
*/
public void setBtn1(Button btn1) {
this.btn1 = btn1;
}
/**
* @param btn2 The btn2 to set.
*/
public void setBtn2(Button btn2) {
this.btn2 = btn2;
}
/**
* @param btn3 The btn3 to set.
*/
public void setBtn3(Button btn3) {
this.btn3 = btn3;
}
/**
* @param btn4 The btn4 to set.
*/
public void setBtn4(Button btn4) {
this.btn4 = btn4;
}
/**
* @param btn5 The btn5 to set.
*/
public void setBtn5(Button btn5) {
this.btn5 = btn5;
}
/**
* @param btn6 The btn6 to set.
*/
public void setBtn6(Button btn6) {
this.btn6 = btn6;
}
/**
* @param btn7 The btn7 to set.
*/
public void setBtn7(Button btn7) {
this.btn7 = btn7;
}
/**
* @param btn8 The btn8 to set.
*/
public void setBtn8(Button btn8) {
this.btn8 = btn8;
}
/**
* @param btn9 The btn9 to set.
*/
public void setBtn9(Button btn9) {
this.btn9 = btn9;
}
/**
* @param btnGeteilt The btnGeteilt to set.
*/
public void setBtnGeteilt(Button btnGeteilt) {
this.btnGeteilt = btnGeteilt;
}
/**
* @param btnMal The btnMal to set.
*/
public void setBtnMal(Button btnMal) {
this.btnMal = btnMal;
}
/**
* @param btnMinus The btnMinus to set.
*/
public void setBtnMinus(Button btnMinus) {
this.btnMinus = btnMinus;
}
/**
* @param btnPlus The btnPlus to set.
*/
public void setBtnPlus(Button btnPlus) {
this.btnPlus = btnPlus;
}
/**
* @param txtgesamtErgebnis The txtgesamtErgebnis to set.
*/
public void setTxtgesamtErgebnis(TextField gesamtErgebnis) {
txtgesamtErgebnis = gesamtErgebnis;
}
/**
* @param txtterm The txtterm to set.
*/
public void setTxtterm(TextField term) {
txtterm = term;
}
}
Code:
ActionEvents.java
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionEvents implements ActionListener {
private Fenster fenster;
private double ersteZahl;
private double zuOperierendeZahl;
private double neuesGesamtErgebnis;
private boolean nochKeineOperation = true;
private Button sourceBtn;
private char[] operatorArray;
private char operator;
public ActionEvents(Fenster fenster){
this.fenster = fenster;
}
public void actionPerformed(ActionEvent arg0) {
ersteZahl = Double.parseDouble(fenster.getTxtgesamtErgebnis().getText());
if(!nochKeineOperation){
if(arg0.getSource() == fenster.getBtnPlus() || arg0.getSource() == fenster.getBtnMinus() || arg0.getSource() == fenster.getBtnMal() || arg0.getSource() == fenster.getBtnGeteilt()){
sourceBtn = (Button) arg0.getSource();
operatorArray = sourceBtn.getLabel().toCharArray();
operator = operatorArray[0];
switch(operator){
case '+': neuesGesamtErgebnis = ersteZahl + zuOperierendeZahl;
System.out.println(neuesGesamtErgebnis);
case '-': neuesGesamtErgebnis = ersteZahl - zuOperierendeZahl;
System.out.println(neuesGesamtErgebnis);
case '*': neuesGesamtErgebnis = ersteZahl * zuOperierendeZahl;
System.out.println(neuesGesamtErgebnis);
case '/': neuesGesamtErgebnis = ersteZahl / zuOperierendeZahl;
System.out.println(neuesGesamtErgebnis);
}
zuOperierendeZahl = 0;
fenster.getTxtgesamtErgebnis().setText(""+neuesGesamtErgebnis);
}
else{
zuOperierendeZahl = zuOperierendeZahl * 10 + Integer.parseInt(sourceBtn.getLabel());
}
} else{
neuesGesamtErgebnis = ersteZahl + zuOperierendeZahl;
nochKeineOperation = true;
}
}
}
Code:
MainClass.java
public class MainClass {
public static void main(String[] args){
new Fenster();
}
}
Code:
WindowManager.java
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class WindowManager extends WindowAdapter{
public void windowClosing(WindowEvent we){
System.exit(1);
}
}