Taschenrechner GUI Problem mit Fehlerhandling

E

eiligerwind

Mitglied
Hallo Zusammen,

ich habe die Aufgabe einen Taschenrechner umzustellen, so dass dieser mit einer JComboBox (vorher Radiobuttons) direkt nach Auswahl verschieden Rechenoperationen ausführen soll. Das funktioniert mittlerweile auch einigermaßen. Allerdings scheint mein abfangen von diversen Falscheingaben nicht zu funktionieren. In der Methode berechnen() ist folgendes hinterlegt:

Methode berechnen():
private String berechnen() {
        //ergebnis muss initialisiert werden
        int zahl1, zahl2, ergebnis = 0;
        boolean fehlerFlag = false;
    
        if (eingabe1.getText().isEmpty()) {
            zahl1 = 0;
            eingabe1.setText("0");
        }
        else
            zahl1 = Integer.parseInt(eingabe1.getText());
        if (eingabe2.getText().isEmpty()) {
                zahl2 = 0;
                eingabe2.setText("0");
        }
        else
            zahl2 = Integer.parseInt(eingabe2.getText());
        
        //welche Operation ist ausgewählt?
        //Die Rechenoperation wird direkt über den Index das Arrays abgefragt
        if (auswahl.getSelectedIndex() == 0)                                                   
            ergebnis = zahl1 + zahl2;
        if (auswahl.getSelectedIndex() == 1)
            ergebnis = zahl1 - zahl2;
        if (auswahl.getSelectedIndex() == 2)
            ergebnis = zahl1 * zahl2;
        //bei der Division überprüfen wir den zweiten Wert auf 0
        if (auswahl.getSelectedIndex() == 3) {
            if (zahl2 != 0)
                ergebnis = zahl1 / zahl2;
            else
                fehlerFlag = true;
        }
        //wenn es keine Probleme gegeben hat, liefern wir das Ergebnis zurück
        if (fehlerFlag == false) {
            
            //das Format anwenden, das Ergebnis ist eine Zeichenkette
            return (Integer.toString(ergebnis));
        }
        else
            return ("Nicht definiert");
    }

dennoch werden keine Eingaben nicht wie erwartet mit "0" gesetzt... auch eine Division durch 0 bringt nicht den erwarteten Text ("Nicht definiert")

was mache ich da falsch?

vielen Dank und VG

eiligerwind
 
BestGoalkeeper

BestGoalkeeper

Top Contributor
Könntest du etwas mehr von der GUI zeigen?
Und du brauchst mind. eine Ausnahmebehandlung, einen fehler Flag gibt es in Java nicht...
 
E

eiligerwind

Mitglied
@Best Goalkeeper: danke für Deine Antwort...habe den Fehler zwischenzeitlich lösen können. Es war nicht die Methode, sondern ich habe in der Mainmethode eine falsche GUI angesprochen...das kommt davon wenn man wild hin und her kopiert...Der Compiler ist nie in die Methode gesprungen...
 
Blender3D

Blender3D

Top Contributor
calculator.JPG

Calculator:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

@SuppressWarnings("serial")
public class CalculatorPanel extends JPanel implements ActionListener {
    static final int ADD = 0;
    static final int SUB = 1;
    static final int MUL = 2;
    static final int DIV = 3;
    private JComboBox<String> operations = new JComboBox<String>(new String[] { "+", "-", "*", "/" });
    private JTextField[] values = new JTextField[2];
    private JButton result = new JButton();

    public CalculatorPanel(int width, int fontSize) {
        setPreferredSize(new Dimension(width, fontSize * 2));
        Font font = new Font("Arial", Font.BOLD, fontSize);
        add(operations);
        operations.setFont(font);       
        Dimension dim = new Dimension(getPreferredSize().width / 4, (int) (fontSize * 1.5));
        for (int i = 0; i < 2; i++) {
            values[i] = new JTextField();
            values[i].setDocument(new FloatDocument());
            values[i].setPreferredSize(dim);
            values[i].setFont(font);
            values[i].setHorizontalAlignment(JTextField.CENTER);
            add(values[i]);
        }
        result.setPreferredSize(dim);
        result.setFont(font);
        result.setFocusable(false);
        result.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
        result.setBackground(Color.WHITE);
        result.addActionListener(this);
        add(result);
    }

    public void addNotify() {
        super.addNotify();
        SwingUtilities.getRootPane(getParent()).setDefaultButton(result);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        switch (operations.getSelectedIndex()) {
        case ADD:
            result.setText(add(getValues()));
            break;
        case SUB:
            result.setText(sub(getValues()));
            break;
        case MUL:
            result.setText(mul(getValues()));
            break;
        case DIV:
            result.setText(div(getValues()));
            break;
        }
    }

    private String add(double[] values) {
        return values[0] + values[1] + "";
    }

    private String div(double[] values) {
        if (values[1] == 0)
            return "DivByZero";
        return values[0] / values[1] + "";
    }

    private double[] getValues() {
        double[] values = new double[2];
        for (int i = 0; i < this.values.length; i++) {
            String val = this.values[i].getText();
            if (val.equals(""))
                val = "0";
            values[i] = Double.parseDouble(val);
        }
        return values;
    }

    private String mul(double[] values) {
        return values[0] * values[1] + "";
    }

    private String sub(double[] values) {
        return values[0] - values[1] + "";
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
A Taschenrechner - Problem mit zwei Klassen Java Basics - Anfänger-Themen 6
I Problem Taschenrechner Java Basics - Anfänger-Themen 6
S Taschenrechner problem Java Basics - Anfänger-Themen 4
Z Taschenrechner Problem Java Basics - Anfänger-Themen 4
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 2
B Problem mit Taschenrechner auf der Konsole Java Basics - Anfänger-Themen 10
C Taschenrechner -> Anzeige/Variablen Problem Java Basics - Anfänger-Themen 9
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 14
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
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
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
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
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
U Taschenrechner "Clear und Minusbutton" Java Basics - Anfänger-Themen 6
K Taschenrechner Java Basics - Anfänger-Themen 4
S Taschenrechner in Java - sinnvoll? Java Basics - Anfänger-Themen 3
M Taschenrechner Java Basics - Anfänger-Themen 15
N Taschenrechner mit plus Java Basics - Anfänger-Themen 8
E Anfänger Taschenrechner Java Basics - Anfänger-Themen 3
N Einfacherer Taschenrechner, ActionListener funzt nicht. Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Anzeige

Neue Themen


Oben