S
Skauuwix
Gast
Also, ich hab in der schule ein projekt bei dem ich ein Taschenrechner programmieren soll! ich bin mitlerweile schon weit gekommen, aber ich schaff es einfach nicht den fehler, das man nicht durch null teilen kann, abzufangen. Also ich hoff ihr versteht was ich meine.
Jeder tipp ist hilfreich, danke im voraus.
Jeder tipp ist hilfreich, danke im voraus.
Code:
import java.awt.*;
import java.awt.event.*;
public class Taschenrechner extends Frame
implements WindowListener,ActionListener
{
Label l1;
TextField t1;
Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9,
bplus, bminus, bmal, bgleich, bpunkt, bclear, bgeteilt;
boolean Rechne=true;
double Zahl = 0;
String Operation="";
/**
* erstellt die Oberflaeche des Taschenrechners
**/
public Taschenrechner()
{Frame window = new Frame("");
window.addWindowListener(this);
window.setTitle("Roche");
window.setSize(165,280);
window.setLocation(200,200);
window.setBackground(Color.black);
/**
* erstellt das Anzeigefeld des Taschenrechners
**/
t1= new TextField("");
t1.setSize(125,20);
t1.setLocation(20,40);
t1.setEditable(false);
t1.setBackground(Color.white);
window.add(t1);
/**
* erstellt die Buttons (0-9) des Taschenrechners
**/
b7= new Button("7");
b7.setBackground(Color.white);
b7.setSize(30,25);
b7.setLocation(20,110);
b7.addActionListener(this);
window.add(b7);
b8= new Button("8");
b8.setSize(30,25);
b8.setLocation(50,100);
b8.addActionListener(this);
b8.setBackground(Color.white);
window.add(b8 );
b9= new Button("9");
b9.setSize(30,25);
b9.setLocation(80,110);
b9.addActionListener(this);
b9.setBackground(Color.white);
window.add(b9);
b4= new Button("4");
b4.setSize(30,25);
b4.setLocation(20,140);
b4.addActionListener(this);
b4.setBackground(Color.white);
window.add(b4);
b5= new Button("5");
b5.setSize(30,25);
b5.setLocation(50,130);
b5.addActionListener(this);
b5.setBackground(Color.white);
window.add(b5);
b6= new Button("6");
b6.setSize(30,25);
b6.setLocation(80,140);
b6.addActionListener(this);
b6.setBackground(Color.white);
window.add(b6);
b1= new Button("1");
b1.setSize(30,25);
b1.setLocation(20,170);
b1.addActionListener(this);
b1.setBackground(Color.white);
window.add(b1);
b2= new Button("2");
b2.setSize(30,25);
b2.setLocation(50,160);
b2.addActionListener(this);
b2.setBackground(Color.white);
window.add(b2);
b3= new Button("3");
b3.setSize(30,25);
b3.setLocation(80,170);
b3.addActionListener(this);
b3.setBackground(Color.white);
window.add(b3);
b0= new Button("0");
b0.setSize(30,25);
b0.setLocation(50,190);
b0.addActionListener(this);
b0.setBackground(Color.white);
window.add(b0);
/**
* erstellt die Operator-Buttons (C, +, -, *, /, =, .) des Taschenrechners
**/
bclear= new Button("C");
bclear.setSize(20,15);
bclear.setLocation(115,70);
bclear.addActionListener(this);
bclear.setBackground(Color.red);
window.add(bclear);
bplus= new Button("+");
bplus.setSize(30,55);
bplus.setLocation(115,190);
bplus.addActionListener(this);
bplus.setBackground(Color.red);
window.add(bplus);
bminus= new Button("-");
bminus.setSize(30,25);
bminus.setLocation(115,130);
bminus.addActionListener(this);
bminus.setBackground(Color.red);
window.add(bminus);
bpunkt= new Button(".");
bpunkt.setSize(30,25);
bpunkt.setLocation(20,220);
bpunkt.addActionListener(this);
bpunkt.setBackground(Color.red);
window.add(bpunkt);
bgleich= new Button("=");
bgleich.setSize(60,25);
bgleich.setLocation(52,220);
bgleich.addActionListener(this);
bgleich.setBackground(Color.red);
window.add(bgleich);
bmal= new Button("*");
bmal.setSize(30,25);
bmal.setLocation(115,160);
bmal.addActionListener(this);
bmal.setBackground(Color.red);
window.add(bmal);
bgeteilt= new Button("/");
bgeteilt.setSize(30,25);
bgeteilt.setLocation(115,100);
bgeteilt.addActionListener(this);
bgeteilt.setBackground(Color.red);
window.add(bgeteilt);
/**
* macht die Oberfläche des Taschenrechners sichtbar
**/
l1= new Label("");window.add(l1);
window.setVisible(true);
}//Ende Taschenrechner
/**
* Wird aufgerufen, wenn das Fenster geschlossen wird
**/
public void windowClosing(WindowEvent e)
{System.exit(0);}
/**
* Wird aufgerufen, wenn das Fenster aktiviert wird
**/
public void windowActivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde
**/
public void windowClosed(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster deaktiviert wird
**/
public void windowDeactivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster wieder hochgeholt wird
**/
public void windowDeiconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird
**/
public void windowIconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn Fenster geöffnet wurde
**/
public void windowOpened(WindowEvent e){}
/**
* Erkennung von Eingaben
**/
public void actionPerformed(ActionEvent ea)
{
int h;
String inh = new String();
String but=ea.getActionCommand();
if (but=="0"){ziffer("0");}
else if (but=="1"){ziffer("1");}
else if (but=="2"){ziffer("2");}
else if (but=="3"){ziffer("3");}
else if (but=="4"){ziffer("4");}
else if (but=="5"){ziffer("5");}
else if (but=="6"){ziffer("6");}
else if (but=="7"){ziffer("7");}
else if (but=="8"){ziffer("8");}
else if (but=="9"){ziffer("9");}
else if (but=="+"){verkn("+");}
else if (but=="-"){verkn("-");}
else if (but=="*"){verkn("*");}
else if (but=="/"){verkn("/");}
else if (but==".")
{
if (Rechne) {t1.setText("0.");Rechne = false;}
else
{
inh = new String(t1.getText());
h = inh.indexOf(".");
if (h < 0) {t1.setText(t1.getText() + ".");}
}//else
}
else if (but=="C")
{
t1.setText("");
Rechne=true;
Zahl=0;
Operation="";
}
else if (but=="="){verkn("");}
}//Ende actionPerformed
/**
* schreib in Display
**/
public void ziffer(String s)
{
if (Rechne) {t1.setText(s);Rechne = false;}
else
{
String inh = new String(t1.getText());
/**zähle die Punkte**/
int h = inh.indexOf(".");
/**bei 6 ohne punkt oder 25 mit punkt**/
if (((h<0)&&(inh.length()<6)) || ((h>0)&&(inh.length()<25))) t1.setText(t1.getText() + s);
else return;
}
}//Ende ziffer
/**
* durchführung der Rechnung
**/
public void verkn(String s)
{
Double wert;
Rechne = true;
try
{
if (Operation=="")
{
wert=new Double(t1.getText());
Zahl= wert.doubleValue();
Operation=s;
}
else
{
String wert_str = new String(t1.getText());
wert=new Double(t1.getText());
if (Operation=="+")
{Zahl=Zahl+wert.doubleValue();}
else if (Operation=="-")
{Zahl=Zahl-wert.doubleValue();}
else if (Operation=="*")
{Zahl=Zahl*wert.doubleValue();}
else if (Operation=="/")
{Zahl=Zahl/wert.doubleValue();}
Operation=s;
t1.setText(s.valueOf(Zahl));
if (wert_str=="0") {t1.setText("geteilt durch 0");}
} }//try
catch (ArithmeticException e)
{
t1.setText("Error:" + e );ziffer("");
}
catch (Throwable e)
{
t1.setText("Fehler:" + e );ziffer("");
}
}//Ende verkn
/**
* main
**/
public static void main(String[]args)
{
Taschenrechner meinFenster=new Taschenrechner();
}//End