IT-Kaetzchen Geschrieben 18. November 2013 Geschrieben 18. November 2013 (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 18. November 2013 von IT-Kaetzchen Zitieren
Empfohlene Beiträge
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.