A
ayk
Gast
Hi,
ich hab jetzt mein Taschenrechner etwas verbessert.
eins fehlt mir noch, und zwar wie ich den erweiterungs Menüpunkt in zwei Radiobuttons machen kann. also zum hin und her schalten.
wenn euch noch was auffällt, wie ich insgesamt den rechner noch besser machen kann, würd ich mich freuen
gruß ayk
ich hab jetzt mein Taschenrechner etwas verbessert.
eins fehlt mir noch, und zwar wie ich den erweiterungs Menüpunkt in zwei Radiobuttons machen kann. also zum hin und her schalten.
wenn euch noch was auffällt, wie ich insgesamt den rechner noch besser machen kann, würd ich mich freuen
gruß ayk
Code:
import java.awt.*;
import java.awt.event.*;
public class Taschenrechner extends Frame implements WindowListener,
ActionListener {
Label l1;
TextField Anzeige;
TextArea Txt2;
Checkbox cb = new Checkbox("Checkbox 1");
Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bplus, bminus, bmal, ew,
bgleich, bpunkt, bclear, bgeteilt;
Menu mMenu;
MenuItem erweitern;
boolean Rechne = true;
double Zahl = 0;
String Operation = "";
/**
* erstellt die Oberflaeche des Taschenrechners
*/
public Taschenrechner() {
Frame window = new Frame("");
this.addWindowListener(this);
this.setTitle("Roche");
this.setLocation(200, 200);
this.setSize(165, 280);
this.setVisible(true);
this.setResizable( false );
//Textfeld für die Erweiterung
Txt2= new TextArea("");
Txt2.setSize(125, 200);
Txt2.setLocation(180,60);
Txt2.setEditable(false);
Txt2.setVisible(true);
Txt2.setText("Die Rechnungen:");
this.add(Txt2);
/**
* erstellt das Anzeigefeld des Taschenrechners
*/
Anzeige = new TextField("");
Anzeige.setSize(125, 20);
Anzeige.setLocation(20, 60);
Anzeige.setEditable(false);
Anzeige.setBackground(Color.white);
this.add(Anzeige);
/**
* erstellt die Buttons (0-9) des Taschenrechners
*/
b7 = new Button("7"); b7.setLocation(20, 110); this.add(b7);
b8 = new Button("8"); b8.setLocation(50, 100); this.add(b8);
b9 = new Button("9"); b9.setLocation(80, 110); this.add(b9);
b4 = new Button("4"); b4.setLocation(20, 140); this.add(b4);
b5 = new Button("5"); b5.setLocation(50, 130); this.add(b5);
b6 = new Button("6"); b6.setLocation(80, 140); this.add(b6);
b1 = new Button("1"); b1.setLocation(20, 170); this.add(b1);
b2 = new Button("2"); b2.setLocation(50, 160); this.add(b2);
b3 = new Button("3"); b3.setLocation(80, 170); this.add(b3);
b0 = new Button("0"); b0.setLocation(50, 190); this.add(b0);
bclear = new Button("C"); bclear.setLocation(20, 90); this.add(bclear);
bplus = new Button("+"); bplus.setLocation(115, 190); this.add(bplus);
bminus = new Button("-"); bminus.setLocation(115, 130);this.add(bminus);
bpunkt = new Button("."); bpunkt.setLocation(20, 220); this.add(bpunkt);
bgleich = new Button("="); bgleich.setLocation(52, 220); this.add(bgleich);
bmal = new Button("*"); bmal.setLocation(115, 160); this.add(bmal);
bgeteilt = new Button("/"); bgeteilt.setLocation(115, 100); this.add(bgeteilt);
b9.addActionListener(this);
b8.addActionListener(this);
b7.addActionListener(this);
b6.addActionListener(this);
b5.addActionListener(this);
b4.addActionListener(this);
b3.addActionListener(this);
b2.addActionListener(this);
b1.addActionListener(this);
b0.addActionListener(this);
bgeteilt.addActionListener(this);
bmal.addActionListener(this);
bgleich.addActionListener(this);
bpunkt.addActionListener(this);
bminus.addActionListener(this);
bplus.addActionListener(this);
bclear.addActionListener(this);
b9.setSize(30, 25); b8.setSize(30, 25); b7.setSize(30, 25); b6.setSize(30, 25);
b5.setSize(30, 25); b4.setSize(30, 25); b3.setSize(30, 25); b2.setSize(30, 25);
b1.setSize(30, 25); b0.setSize(30, 25);
bgeteilt.setSize(30, 25); bmal.setSize(30, 25); bgleich.setSize(60, 25);
bpunkt.setSize(30, 25); bminus.setSize(30, 25); bplus.setSize(30, 55); bclear.setSize(20, 15);
/**
* Farbe der Buttons
*/
b9.setBackground(Color.white); b8.setBackground(Color.white); b7.setBackground(Color.white);
b6.setBackground(Color.white); b5.setBackground(Color.white); b4.setBackground(Color.white);
b3.setBackground(Color.white); b2.setBackground(Color.white); b1.setBackground(Color.white);
b0.setBackground(Color.white);
bclear.setBackground(Color.red); bgeteilt.setBackground(Color.red); bmal.setBackground(Color.red);
bgleich.setBackground(Color.red); bpunkt.setBackground(Color.red); bminus.setBackground(Color.red);
bplus.setBackground(Color.red);
//Menübar und Einträge
MenuBar mMenuBar = new MenuBar();
setMenuBar(mMenuBar);
mMenuBar.add(mMenu = new Menu ("Anzeige"));
mMenu.add(erweitern = new MenuItem ("erweitern"));
erweitern.addActionListener(this);
}//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"||but=="1"||but=="2"||but=="3"||but=="4"||
but=="5"||but=="6"||but=="7"||but=="8"||but=="9"){ziffer(but);}
else if (but=="+"||but=="-"||but=="*"||but=="/"){verkn(but);}
else if (but==".") {
if(Rechne) {
Anzeige.setText("0.");
Rechne = false;
}
else {
inh = new String(Anzeige.getText());
h = inh.indexOf(".");
if(h < 0) {
Anzeige.setText(Anzeige.getText() + ".");
}
}//else
}
else if(but == "C") {
Anzeige.setText("");
Rechne = true;
Zahl = 0;
Operation = "";
}
else if(but == "=") {
verkn("");
}
else if (but=="erweitern") {this.setSize(340, 280);}
}//Ende actionPerformed
/**
* schreib in Display
*/
public void ziffer(String s) {
if(Rechne) {
Txt2.setText(Txt2.getText() + "\n");
Anzeige.setText(s);
Rechne = false;
}
else {
String inh = new String(Anzeige.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)))
Anzeige.setText(Anzeige.getText() + s);
else
return;
}
Txt2.setText(Txt2.getText() + s);
}//Ende ziffer
/**
* durchführung der Rechnung
*/
public void verkn(String s) {
Txt2.setText(Txt2.getText() + "\n" + s);
Double wert;
Rechne = true;
try {
if(Operation == "") {
wert = new Double(Anzeige.getText());
Zahl = wert.doubleValue();
Operation = s;
}
else {
wert = new Double(Anzeige.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;
Anzeige.setText(s.valueOf(Zahl));
Txt2.setText(Txt2.getText() + "=" + s.valueOf(Zahl));
}
}//try
catch (ArithmeticException e) {
Anzeige.setText("Error:" + e);
ziffer("");
}
catch (Throwable e) {
Anzeige.setText("Fehler:" + e);
ziffer("");
}
}//Ende verkn
public void erwt(){
this.setSize(300, 300);
}
/**
* main
*/
public static void main(String[] args) {
Taschenrechner meinFenster = new Taschenrechner();
}//Ende main
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}