Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Taschenrechnerproblem

Empfohlene Antworten

Veröffentlicht

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.