Taschenrechner -> Anzeige/Variablen Problem

Status
Nicht offen für weitere Antworten.
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 +):

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:
 
G

Guest

Gast
ich sag ich bin noobie...wo muss ich die denn aufrufen? Im action listener unter dem Button mit Gleich dann wahrscheinlich oder?

Achja: und müsste das so funktionieren mit dem konvertieren von Variablen?
 
C

Chili

Gast
scheisse ich vergess immer meinen namen...also wie siehts aus?
 

André Uhres

Top Contributor
Code:
...
        public void erzeugeFenster() {
...
            fenster.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
...
        public void actionPerformed(ActionEvent e) {
...
                ersteZahl = Double.parseDouble(Zwischen);
...
                ersteZahl = Double.parseDouble(Zwischen);
...
                ersteZahl = Double.parseDouble(Zwischen);
...
                ersteZahl = Double.parseDouble(Zwischen);
...

            if (e.getSource() == btGleich){
                String Zwischen = tfAnzeige.getText();
                zweiteZahl = Double.parseDouble(Zwischen);
                rechnen();
            }
...
 
C

Chili

Gast
Gut da hätt ich auf jeden fall selbst drauf kommen können. das habe ich jetzt so verändert.

Jetzt bekomme ich immer das Ergebnis 0.0 also funzt entweder das mit der Konvertierung der Variablen nicht oder ich habe noch einen anderen Fehler gemacht... Hat jemand ne Idee?
 

André Uhres

Top Contributor
Haste auch das double weggenommen (vor ersteZahl und zweiteZahl), wie ich das oben gezeigt habe ?
Sonst gilt die Variable nämlich nur lokal in actionPerformed(). Die Methode rechnen() kennt nur die am Anfang
deines Programms definierten Instanzvariablen.
 
C

Chili

Gast
Nein das hatte ich vergessen bzw. ich hatte gar nicht gemerkt das das was anderes war, als das was ich schon hatte und mich gewundert warum du das da nochma reingeschrieben hast..ich bin ein bisschen schwer von begriff ;-)

oh yessssssssssssssssssss! es klappt! holy crap! danke ey! ich meld mich hier echt an - in manchen forum da laufen ja echt nurwichser rum und machen dich an wenndu keine ahnung hast aber hier wird direkt geholfen! dickes lob!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben