C
Chili
Gast
Hi!
Ich muss für die Schule (Informatik) einen Taschenrechner mit Java schreiben und es klappt soweit auch alles (was mich wundert, denn ich bin der totale Java noobie) soweit, nur mit den Variablen die immer so hin und her zu konvertieren also von String zu double und zurück scheint nicht richtig zu funktionieren und das heißt der Taschenrechner rechnet nicht oder er gibt kein Ergebnis aus. Selbst wenn ich in die letzte Zeile zum Bsp. tfAnzeige.setText("Lalala!"); schreibe gibt er Lalala! nicht aus. Naja hier erstmal der Quelltext (ist noch nicht fertig, kann erst +):
Wodran kann das liegen? Also ersmal, dass der egal was in der letzten Zeile steht ob Variable oder Text ders nicht ausgibt wenn ich Gleich drücke und dann ob der überhaupt rechnet mit den Variablen etc...
Hoffe ihr könnt mir helfen!!!
Ich muss für die Schule (Informatik) einen Taschenrechner mit Java schreiben und es klappt soweit auch alles (was mich wundert, denn ich bin der totale Java noobie) soweit, nur mit den Variablen die immer so hin und her zu konvertieren also von String zu double und zurück scheint nicht richtig zu funktionieren und das heißt der Taschenrechner rechnet nicht oder er gibt kein Ergebnis aus. Selbst wenn ich in die letzte Zeile zum Bsp. tfAnzeige.setText("Lalala!"); schreibe gibt er Lalala! nicht aus. Naja hier erstmal der Quelltext (ist noch nicht fertig, kann erst +):
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class TaschenrechnerGUI extends JPanel implements ActionListener
{
private JFrame fenster;
private JPanel pnFenster;
private TextField tfAnzeige;
private Button btEins;
private Button btZwei;
private Button btDrei;
private Button btVier;
private Button btFuenf;
private Button btSechs;
private Button btSieben;
private Button btAcht;
private Button btNeun;
private Button btNull;
private Button btPlus;
private Button btMinus;
private Button btMal;
private Button btGeteilt;
private Button btGleich;
private Button btPunkt;
public String neueZiffer;
public String zeichen;
public int zeichenEingegeben;
public double ersteZahl;
public double zweiteZahl;
public double ergebnis;
public TaschenrechnerGUI() {
erzeugeFenster();
}
public void erzeugeFenster() {
fenster = new JFrame("Einfacher Taschenrechner");
//Anlegen des Inhaltsbereiches
pnFenster = (JPanel) fenster.getContentPane();
fenster.setSize (180,250);
pnFenster.setLayout(null);
pnFenster.setBackground (Color.black);
tfAnzeige = new TextField ();
tfAnzeige.setBounds (20,20,130,20);
tfAnzeige.setBackground (Color.white);
pnFenster.add(tfAnzeige);
btEins = new Button("1");
btEins.setBounds (20,140,25,25);
pnFenster.add(btEins);
btZwei = new Button("2");
btZwei.setBounds (55,140,25,25);
pnFenster.add(btZwei);
btDrei = new Button("3");
btDrei.setBounds (90,140,25,25);
pnFenster.add(btDrei);
btVier = new Button("4");
btVier.setBounds (20,105,25,25);
pnFenster.add(btVier);
btFuenf = new Button("5");
btFuenf.setBounds (55,105,25,25);
pnFenster.add(btFuenf);
btSechs = new Button("6");
btSechs.setBounds (90,105,25,25);
pnFenster.add(btSechs);
btSieben = new Button("7");
btSieben.setBounds (20,70,25,25);
pnFenster.add(btSieben);
btAcht = new Button("8");
btAcht.setBounds (55,70,25,25);
pnFenster.add(btAcht);
btNeun = new Button("9");
btNeun.setBounds (90,70,25,25);
pnFenster.add(btNeun);
btNull = new Button("0");
btNull.setBounds (20,175,25,25);
pnFenster.add(btNull);
btPlus = new Button("+");
btPlus.setBounds (125,175,25,25);
pnFenster.add(btPlus);
btMinus = new Button("-");
btMinus.setBounds (125,140,25,25);
pnFenster.add(btMinus);
btMal = new Button("*");
btMal.setBounds (125,105,25,25);
pnFenster.add(btMal);
btGeteilt = new Button("/");
btGeteilt.setBounds (125,70,25,25);
pnFenster.add(btGeteilt);
btGleich = new Button("=");
btGleich.setBounds (90,175,25,25);
pnFenster.add(btGleich);
btPunkt = new Button(".");
btPunkt.setBounds (55,175,25,25);
pnFenster.add(btPunkt);
fenster.setVisible(true);
btEins.addActionListener(this);
btZwei.addActionListener(this);
btDrei.addActionListener(this);
btVier.addActionListener(this);
btFuenf.addActionListener(this);
btSechs.addActionListener(this);
btSieben.addActionListener(this);
btAcht.addActionListener(this);
btNeun.addActionListener(this);
btNull.addActionListener(this);
btPlus.addActionListener(this);
btMinus.addActionListener(this);
btMal.addActionListener(this);
btGeteilt.addActionListener(this);
btGleich.addActionListener(this);
btPunkt.addActionListener(this);
}
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();
double ersteZahl = Double.parseDouble(Zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btMinus){
String zeichen = "-";
String Zwischen = tfAnzeige.getText();
double ersteZahl = Double.parseDouble(Zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btMal){
String zeichen = "*";
String Zwischen = tfAnzeige.getText();
double ersteZahl = Double.parseDouble(Zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btGeteilt){
String zeichen = "/";
String Zwischen = tfAnzeige.getText();
double ersteZahl = Double.parseDouble(Zwischen);
tfAnzeige.setText(zeichen);
zeichenEingegeben = 1;
}
if (e.getSource() == btGleich){
String Zwischen = tfAnzeige.getText();
double zweiteZahl = Double.parseDouble(Zwischen);
}
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() {
ergebnis = ersteZahl + zweiteZahl;
String endergebnis = new String ("" + ergebnis);
tfAnzeige.setText("" + endergebnis);
}
}
Wodran kann das liegen? Also ersmal, dass der egal was in der letzten Zeile steht ob Variable oder Text ders nicht ausgibt wenn ich Gleich drücke und dann ob der überhaupt rechnet mit den Variablen etc...
Hoffe ihr könnt mir helfen!!!
Code: