Grafischer Taschenrechner geht nicht :-(

Status
Nicht offen für weitere Antworten.

samy88

Mitglied
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        operator = "PLUS";
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        operator = "MINUS";
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        operator = "GETEILT";
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        operator = "MAL";
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        berechnen();
        jTextField1.setText(String.valueOf(zahl1));
    }                                        

    public void berechnen(){
        if(operator == "PLUS"){
            zahl1 = zahl1 + Double.parseDouble(jTextField1.getText());
        }else if(operator == "MINUS"){
            zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());
        }else if(operator == "GETEILT"){
            zahl1 = zahl1 / Double.parseDouble(jTextField1.getText());
        }else if(operator == "MAL"){
            zahl1 = zahl1 * Double.parseDouble(jTextField1.getText());
        }
    }

Da kommen solche Sachen raus:
50 - 30 = -80

wo ist mein Fehler?
 
achso ja stimmt, aber ich hatte den operator vorher mal als int = operator und hab dann durchgezählt von 1-4. und da hat es auch nicht funktioniert
 
> }else if(operator == "MINUS"){
> zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());

->

}else if("MINUS".equals(operator)){
System.out.println("zahl1 war: .., im TextField steht: .., neue zahl1 wird sein: ...");
zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());

Strings nur mit equals vergleichen,
wenn du einen String mehr als einmal im Programm benutzt, dann lege statische Konstanten an un verweise nur auf diese Konstanten,

oder definiere dir gleich Enums, Enum-Werte kannst du dann auch mit == vergleichen


edit:
und Code sparen,
Double.parseDouble(jTextField1.getText());
muss genau einmal in berechnen() stehen, als double-Variable vor den if/else-Block,
nicht 4x oder öfter wiederholen,

---

java.awt.event... muss auch nicht sein in jedem ActionListener, man kann doch Klassen importierten

----
jTextField1.setText("");
jTextField1.requestFocus();
steht 4x in 4 ActionListener, rote Lampe leuchtet
 
Zuletzt bearbeitet von einem Moderator:
nur nebenbei es wäre nützlich den Buttons sinnvole Instanznamen zugeben - zB btnMinus oder irgendwie sowas - aber net JButton1, 2 ...
 
Wo der Fehler liegt kann ich nicht sagen. Aber folgendes ist mir aufgefallen:
Code:
    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        berechnen();
        jTextField1.setText(String.valueOf(zahl1));
    }
soll vermutlich einfach nur das Ergebnis ausgeben!?! Warum dann der Aufruf von berechnen?
Code:
         if(operator == "PLUS"){
Strings vergleicht man mit equals()
 
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Plus
        operator = 1;
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Minus
        operator = 2;
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Geteilt
        operator = 3;
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Mal
        operator = 4;
        berechnen();
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {              
        //istGleich                   
        berechnen();
        jTextField1.setText(String.valueOf(zahl1));
    }                                        

    public void berechnen(){
        if(operator == 1){
            zahl1 = zahl1 + Double.parseDouble(jTextField1.getText());
        }else if(operator == 2){
            zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());
        }else if(operator == 3){
            zahl1 = zahl1 / Double.parseDouble(jTextField1.getText());
        }else if(operator == 4){
            zahl1 = zahl1 * Double.parseDouble(jTextField1.getText());
        }
    }

geht immernoch nicht, sagte ich doch^^
 
Mit was ist den Zahl 1 vorher initialisiert, denke mal 0.0 oder?

Wäre evtl. sinnvoll zahl 1 immer auf 0 zu setzen beim aufrufen von berechne().

Ansonsten wäre es praktisch wenn du den ganzen code mal posten könntest, ansonsten seh ich auch

keinen Grund wieso es falsch berechnet.
 
Man man man wenn man einmal aufm Schlauch sitzt! :-D

Der Fehler war dass ich schon die erste Zahl dann gerechnet hab:

0 - 50 = -50
-50 - 30 = -80

Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Plus
        operator = 1;
        zahl1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Minus
        operator = 2;
        zahl1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Geteilt
        operator = 3;
        zahl1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Mal
        operator = 4;
        zahl1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField1.requestFocus();
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        berechnen();
        jTextField1.setText(String.valueOf(zahl1));
    }                                        

    public void berechnen(){
        if(operator == 1){
            zahl1 = zahl1 + Double.parseDouble(jTextField1.getText());
        }else if(operator == 2){
            zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());
        }else if(operator == 3){
            zahl1 = zahl1 / Double.parseDouble(jTextField1.getText());
        }else if(operator == 4){
            zahl1 = zahl1 * Double.parseDouble(jTextField1.getText());
        }
    }
 
Hey Leute, hier ist das gute Stück.

Es geht alles, außer wenn man folgende Kombination drückt zb.: 2+2+2+2+2-3
Da ist mir noch nichts einfallen.
Gehen würde aber: 2+2+2+2+2 = -3
Es geht auch die Zahl wie im Windows taschenrechner mit +/- zu machen.
Punkt reinsetzen geht auch :-D
Das C von Windows Taschenrechner geht auch, ist ja nur alles Reseten

Was fehlt: Rücktaste, CE da hab ich kein bock mehr drauf

was haltet ihr davon?
Probiert ihn mal bitte aus 🙂


Code:
package taschenrechner;


public class TaschenRechner extends javax.swing.JFrame {
    public double zahl1 = 0;
    public int operator = 0;
    public int eingabe  = 0;
    public String s = "";
   
    public TaschenRechner() {
        initComponents();
        setLocationRelativeTo(null);
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jTextField1 = new javax.swing.JTextField();
        btnPlus = new javax.swing.JButton();
        btnminus = new javax.swing.JButton();
        btnGeteilt = new javax.swing.JButton();
        btnMal = new javax.swing.JButton();
        btnIstGleich = new javax.swing.JButton();
        btn7 = new javax.swing.JButton();
        btn8 = new javax.swing.JButton();
        btn9 = new javax.swing.JButton();
        btn4 = new javax.swing.JButton();
        btn5 = new javax.swing.JButton();
        btn6 = new javax.swing.JButton();
        btn1 = new javax.swing.JButton();
        btn2 = new javax.swing.JButton();
        btn3 = new javax.swing.JButton();
        btn0 = new javax.swing.JButton();
        btnPlusMinus = new javax.swing.JButton();
        btnPunkt = new javax.swing.JButton();
        btnReset = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setAlwaysOnTop(true);
        setMinimumSize(new java.awt.Dimension(262, 230));
        setResizable(false);

        btnPlus.setText("+");
        btnPlus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPlusActionPerformed(evt);
            }
        });

        btnminus.setText("-");
        btnminus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnminusActionPerformed(evt);
            }
        });

        btnGeteilt.setText("/");
        btnGeteilt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGeteiltActionPerformed(evt);
            }
        });

        btnMal.setText("*");
        btnMal.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnMalActionPerformed(evt);
            }
        });

        btnIstGleich.setText("=");
        btnIstGleich.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnIstGleichActionPerformed(evt);
            }
        });

        btn7.setText("7");
        btn7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn7ActionPerformed(evt);
            }
        });

        btn8.setText("8");
        btn8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn8ActionPerformed(evt);
            }
        });

        btn9.setText("9");
        btn9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn9ActionPerformed(evt);
            }
        });

        btn4.setText("4");
        btn4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn4ActionPerformed(evt);
            }
        });

        btn5.setText("5");
        btn5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn5ActionPerformed(evt);
            }
        });

        btn6.setText("6");
        btn6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn6ActionPerformed(evt);
            }
        });

        btn1.setText("1");
        btn1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn1ActionPerformed(evt);
            }
        });

        btn2.setText("2");
        btn2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn2ActionPerformed(evt);
            }
        });

        btn3.setText("3");
        btn3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn3ActionPerformed(evt);
            }
        });

        btn0.setText("0");
        btn0.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn0ActionPerformed(evt);
            }
        });

        btnPlusMinus.setText("+/-");
        btnPlusMinus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPlusMinusActionPerformed(evt);
            }
        });

        btnPunkt.setText(".");
        btnPunkt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPunktActionPerformed(evt);
            }
        });

        btnReset.setText("Reset");
        btnReset.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnResetActionPerformed(evt);
            }
        });

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("created by Samuel Machauer");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(btnReset, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(btn7, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn8, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn9, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnPlus, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(btn4, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn6, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnminus, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(btn1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btn3, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnMal, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(btn0, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnPlusMinus, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnPunkt, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnGeteilt, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(btnIstGleich, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE)))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(btnReset, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn7, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn8, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn9, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnPlus, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn4, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn5, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn6, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnminus, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn2, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn3, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnMal, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn0, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnPlusMinus, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnPunkt, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnGeteilt, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addComponent(btnIstGleich, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel1)
                .addGap(9, 9, 9))
        );

        pack();
    }// </editor-fold>

    private void btnPlusActionPerformed(java.awt.event.ActionEvent evt) {                                        
        if(eingabe > 0 && operator == 1){
            operator = 1;
            zahl1 = zahl1 + Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
        }else{
            operator = 1;
            zahl1 = Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
            eingabe = 1;
        }
}                                       

    private void btnminusActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if(eingabe > 0 && operator == 2){
            operator = 2;
            zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
        }else{
            operator = 2;
            zahl1 = Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
            eingabe = 1;
        }
}                                        

    private void btnGeteiltActionPerformed(java.awt.event.ActionEvent evt) {                                           
        if(eingabe > 0 && operator == 3){
            operator = 3;
            zahl1 = zahl1 / Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
        }else{
            operator = 3;
            zahl1 = Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
            eingabe = 1;
        }
}                                          

    private void btnMalActionPerformed(java.awt.event.ActionEvent evt) {                                       
        if(eingabe > 0 && operator == 4){
            operator = 4;
            zahl1 = zahl1 * Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
        }else{
            operator = 4;
            zahl1 = Double.parseDouble(jTextField1.getText());
            jTextField1.setText("");
            jTextField1.requestFocus();
            eingabe = 1;
        }
}                                      

    private void btnIstGleichActionPerformed(java.awt.event.ActionEvent evt) {                                             
        //IstGleich
        berechnen();
        jTextField1.setText(String.valueOf(zahl1));
        jTextField1.requestFocus();
}                                            

    private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"7");
}                                    

    private void btn8ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"8");
    }                                    

    private void btn9ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"9");
    }                                    

    private void btn4ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"4");
    }                                    

    private void btn5ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"5");
    }                                    

    private void btn6ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"6");
    }                                    

    private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"1");
    }                                    

    private void btn2ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"2");
    }                                    

    private void btn3ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"3");
    }                                    

    private void btn0ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        s = jTextField1.getText();
        jTextField1.setText(s+"0");
    }                                    

    private void btnPlusMinusActionPerformed(java.awt.event.ActionEvent evt) {                                             
        s = jTextField1.getText();
        if(s.charAt(0)== '-'){
            zahl1 = Double.parseDouble(jTextField1.getText())*-1;
            jTextField1.setText(String.valueOf(zahl1));
        }else{
            zahl1 = Double.parseDouble(jTextField1.getText())*-1;
            jTextField1.setText(String.valueOf(zahl1));
        }
    }                                            

    private void btnPunktActionPerformed(java.awt.event.ActionEvent evt) {                                         
        s = jTextField1.getText();
        jTextField1.setText(s+".");
    }                                        

    private void btnResetActionPerformed(java.awt.event.ActionEvent evt) {                                         
        zahl1 = 0;
        operator = 0;
        eingabe  = 0;
        String s = "";
        jTextField1.setText(s);
        jTextField1.requestFocus();
    }                                        

    public void berechnen(){
        if(operator == 1){
            zahl1 = zahl1 + Double.parseDouble(jTextField1.getText());
        }else if(operator == 2){
            zahl1 = zahl1 - Double.parseDouble(jTextField1.getText());
        }else if(operator == 3){
            zahl1 = zahl1 / Double.parseDouble(jTextField1.getText());
        }else if(operator == 4){
            zahl1 = zahl1 * Double.parseDouble(jTextField1.getText());
        }
    }

    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TaschenRechner().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton btn0;
    private javax.swing.JButton btn1;
    private javax.swing.JButton btn2;
    private javax.swing.JButton btn3;
    private javax.swing.JButton btn4;
    private javax.swing.JButton btn5;
    private javax.swing.JButton btn6;
    private javax.swing.JButton btn7;
    private javax.swing.JButton btn8;
    private javax.swing.JButton btn9;
    private javax.swing.JButton btnGeteilt;
    private javax.swing.JButton btnIstGleich;
    private javax.swing.JButton btnMal;
    private javax.swing.JButton btnPlus;
    private javax.swing.JButton btnPlusMinus;
    private javax.swing.JButton btnPunkt;
    private javax.swing.JButton btnReset;
    private javax.swing.JButton btnminus;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration

}
 
Zuletzt bearbeitet:
wie meinst du das? du musst den plus button drücken nicht eingeben
Fehlerbehandlung hab ich weggelassen, ist nur ein programm für die schule. muss nicht perfekt sein..
 
Zuletzt bearbeitet:
Was fehlt Rücktaste, CE, C da hab ich kein bock mehr drauf

was haltet ihr davon?
Probiert ihn mal bitte aus 🙂

Ich hab auch kein bock zum probieren! Aber im ernst, bevor du weiter Funktionen reinpackst, solltest du den Code vernünftig machen.

1. Warum sind Variablen oben und unten definiert?
2. Viele Methoden die fast ein und das selbe machen
3. Keinen einzeigen Kommentar. Und solche Kommentar "// Variables declaration ..." kann man sich sparen, das sieht jeder auf den ersten Blick!
 
Mal im ernst, wenn du kein bock hast dann brauchst du auch hier nicht reinschreiben.
1. Ich hab Variablen nur oben definiert. Der rest ist alles von Netbeans automatisch erzeugt!
2. Kann schon sein,... bin halt nicht der beste
3. // Variables declaration ist auch automatisch erzeugt. das hättest du dir denken können

Ich hab das hier schnell gemacht da schreib ich doch keine Kommentare dazu!
Außerdem sind kommentare bei dem Programm unnötig, erklärt sich alles von selbst!
 
Mal im ernst, wenn du kein bock hast dann brauchst du auch hier nicht reinschreiben.
1. Ich hab Variablen nur oben definiert. Der rest ist alles von Netbeans automatisch erzeugt!
2. Kann schon sein,... bin halt nicht der beste
3. // Variables declaration ist auch automatisch erzeugt. das hättest du dir denken können

Ich hab das hier schnell gemacht da schreib ich doch keine Kommentare dazu!
Außerdem sind kommentare bei dem Programm unnötig, erklärt sich alles von selbst!

Das sollte nicht so unfreundlich rüberkommen, wie es anscheint ist, sorry!
Zu punkt 1 und 2, oki, dann liegt das alles an NetBeans, kannst auch nix für!

Dann zu dem "schnell gemacht", das ist das Problem der meisten. Schnell was machen, gucken ob es läuft und wenn es nicht läuft dann das Forum fragen!
Meine Meinung ist, das man die meisten Fehler findet wenn man mal seinen Code Schritt für Schritt durchgeht und dann evtl. dabei den ein oder anderen Kommentar schreibt! 1. Hilft es, wenn man nochmal später an den Code muss und 2. ist man sich dann auch selbst im klaren ob man seinen eigenen Code verstanden hat!
 
wenn man

0,5 also 0KOMMA5 eingibt, fliegt ne exception 🙂

rechnen tut er falsch.
keine inputvalidierung.

nicht zu gebrauchen
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben