Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Ihr.

Ich muss in der Schule einen Taschenrechner in Netbeans programmieren. Ich bin eig schon recht weit. Mir fehlt noch n bisschen was mit der "0".. z.B. dass man nur eine Null eingeben kann, außer ein Komma steht davor oder eine Zahl usw.

Mein Problem ist jetzt, dass mein Taschenrechner PLUS und MINUS einwandfrei rechnet, NUR wenn ich GETEILT und MAL rechnen möchte, dann macht er das nicht. Die GUI hab ich als Frame gemacht, also das ist alles ausgeblendet. Hier ich zeig euch mal den Quellcode:

package neuer_taschenrechner;


import javax.swing.JOptionPane;


public class NEUER_TASCHENRECHNER_FRAME extends javax.swing.JFrame {


    //Deklaration der Variablen!

    double plusminus; //für +/-

   // double ergebnis; nicht verwendet!

    double hochzwei; // für x²

    String NULL;

    boolean neueZahl = true; //prüft ob neue Zahl eingegeben wurde

    String rechenart = "", kommata, ersteEingabe = ""; //Strings für die Rechenart, Komma, und ersteEingabe


    public NEUER_TASCHENRECHNER_FRAME() {

        initComponents();

    }


    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          


private void OperatorActionPerformed(java.awt.event.ActionEvent evt) {                                         

    if (ersteEingabe.isEmpty()) { //wenn ersteEingabe *leer

        ersteEingabe = fenster.getText(); //die eingegebene Zahl wird übernommen

        rechenart = evt.getActionCommand(); //die Rechenart wird ermittelt


    } else {


        if (rechenart.equals("+")) {

            fenster.setText(String.valueOf(Double.valueOf(ersteEingabe) + Double.valueOf(fenster.getText())));

        }

        if (rechenart.equals("-")) {

            fenster.setText(String.valueOf(Double.valueOf(ersteEingabe) - Double.valueOf(fenster.getText())));

        }

        if (rechenart.equals("*")) {

            fenster.setText(String.valueOf(Double.valueOf(ersteEingabe) * Double.valueOf(fenster.getText())));

        }

        if (rechenart.equals("/")) {

            if ((Double.valueOf(fenster.getText())) != 0) { //wenn die zweite Zahl NICHT Null ist

                fenster.setText(String.valueOf(Double.valueOf(ersteEingabe) / Double.valueOf(fenster.getText())));

            } else { //wenn die zweite Zahl Null ist -> DAS GEHT NICHT!

                JOptionPane.showMessageDialog(null, "Du hast in der Schule nicht gut aufgepasst. Mathematisch inkorrekte Operation. Teilen durch 0 nicht möglich!!");

            }

        }

    }



    ersteEingabe = fenster.getText(); //das Fenster hat jetzt das Ergebnis einer Rechenaufgabe


    if (!evt.getActionCommand().equals("=")) { //Wenn NICHT = gedrück wurde, soll er die gedrückte rechenart übernehmen

        rechenart = evt.getActionCommand();


    } else { //ansonsten soll er bei dem drücken von = alles auf 'leer' setzen

        rechenart = "";

        ersteEingabe = "";


    }


    neueZahl = true;




}                                        


private void ZiffernActionPerformed(java.awt.event.ActionEvent evt) {                                        

    if (neueZahl) {

        fenster.setText(evt.getActionCommand());

    } else {

        fenster.setText(fenster.getText() + evt.getActionCommand());

    }

    neueZahl = false;

}                                       


private void posnegActionPerformed(java.awt.event.ActionEvent evt) {                                       

    plusminus = (Double.parseDouble(String.valueOf(fenster.getText())));

    plusminus = plusminus * (-1);

    fenster.setText(String.valueOf(plusminus));

    neueZahl = true;

}                                      


private void wurzelActionPerformed(java.awt.event.ActionEvent evt) {                                       

    fenster.setText(String.valueOf(Math.sqrt(Double.valueOf(fenster.getText()))));

    neueZahl = true;

}                                      


private void quadratActionPerformed(java.awt.event.ActionEvent evt) {                                        

    hochzwei = (Double.parseDouble(fenster.getText()));

    hochzwei = hochzwei * hochzwei;

    fenster.setText(String.valueOf(hochzwei));

    neueZahl = true;

}                                       


private void kommaActionPerformed(java.awt.event.ActionEvent evt) {                                      

    kommata = (evt.getActionCommand());

    if (kommata.contains(".")) {

        if (!fenster.getText().contains(".")) {

            fenster.setText(fenster.getText() + kommata);

        } else {

            JOptionPane.showMessageDialog(null, "Nur ein Komma eingeben");


        }

    }

}                                     


private void clearActionPerformed(java.awt.event.ActionEvent evt) {                                      

    fenster.setText("");

    ersteEingabe = "";

    rechenart = "";

    neueZahl = false;

}                                     


private void ButtonNullActionPerformed(java.awt.event.ActionEvent evt) {                                           

ersteEingabe = (evt.getActionCommand());


if (ersteEingabe.equals("0")){


}

}                                          

    public static void main(String args[]) {



        }

        //</editor-fold>



        java.awt.EventQueue.invokeLater(new Runnable() {


            public void run() {

                new NEUER_TASCHENRECHNER_FRAME().setVisible(true);

            }

        });

    }

    // Variables declaration - do not modify                     

    private javax.swing.JButton ButtonNull;

    private javax.swing.JButton clear;

    private javax.swing.JTextField fenster;

    private javax.swing.JButton geteilt;

    private javax.swing.JButton gleich;

    private javax.swing.JButton jButton1;

    private javax.swing.JButton jButton2;

    private javax.swing.JButton jButton3;

    private javax.swing.JButton jButton4;

    private javax.swing.JButton jButton5;

    private javax.swing.JButton jButton6;

    private javax.swing.JButton jButton7;

    private javax.swing.JButton jButton8;

    private javax.swing.JButton jButton9;

    private javax.swing.JButton komma;

    private javax.swing.JButton mal;

    private javax.swing.JButton minus;

    private javax.swing.JButton plus;

    private javax.swing.JButton posneg;

    private javax.swing.JButton quadrat;

    private javax.swing.JButton wurzel;

    // End of variables declaration                   

}

Vielleicht sieht ja jemand, wo mein Fehler liegt. Bitte haltet es so einfach wie möglich. Bin noch Anfänger, und brauch immer n bisschen länger beim Programmieren ;)

Danke schonmal :)

Bearbeitet von IT-Kaetzchen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...