Bonjour,
Ma calculatrice que j'essaie de faire en java ne fonctionne pas bien.
Si je fais 5-5, ça me répond -10
aussi, si je cliques d'abord sur le signe + ou moins, ça plante.
Est-ce qui quelqu'un pourrait m'aider svp ?
Ca se présente en deux classes. La classe calculatrice, et la classe calculatriceSwing.
public class CalculatriceSwing extends javax.swing.JFrame { private static Calculatrice calc = new Calculatrice(); private String str=""; private String operateur; /** * Creates new form CalculatriceSwing */ public CalculatriceSwing() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { resultatLabel = new javax.swing.JLabel(); 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(); BtnPlus = new javax.swing.JButton(); Btn0 = new javax.swing.JButton(); BtnDiv = new javax.swing.JButton(); BtnMoins = new javax.swing.JButton(); BtnFois = new javax.swing.JButton(); BtnEgal = new javax.swing.JButton(); BtnC = new javax.swing.JButton(); BtnPoint = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Calculatrice"); resultatLabel.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N resultatLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); resultatLabel.setText("0"); Btn7.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn7.setText("7"); Btn7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn7ActionPerformed(evt); } }); Btn8.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn8.setText("8"); Btn8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn8ActionPerformed(evt); } }); Btn9.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn9.setText("9"); Btn9.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn9ActionPerformed(evt); } }); Btn4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn4.setText("4"); Btn4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn4ActionPerformed(evt); } }); Btn5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn5.setText("5"); Btn5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn5ActionPerformed(evt); } }); Btn6.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn6.setText("6"); Btn6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn6ActionPerformed(evt); } }); Btn1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn1.setText("1"); Btn1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn1ActionPerformed(evt); } }); Btn2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn2.setText("2"); Btn2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn2ActionPerformed(evt); } }); Btn3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn3.setText("3"); Btn3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn3ActionPerformed(evt); } }); BtnPlus.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnPlus.setText("+"); BtnPlus.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnPlusActionPerformed(evt); } }); Btn0.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N Btn0.setText("0"); Btn0.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Btn0ActionPerformed(evt); } }); BtnDiv.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnDiv.setText("/"); BtnDiv.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnDivActionPerformed(evt); } }); BtnMoins.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnMoins.setText("-"); BtnMoins.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnMoinsActionPerformed(evt); } }); BtnFois.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnFois.setText("*"); BtnFois.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnFoisActionPerformed(evt); } }); BtnEgal.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnEgal.setText("="); BtnEgal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnEgalActionPerformed(evt); } }); BtnC.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnC.setText("C"); BtnC.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnCActionPerformed(evt); } }); BtnPoint.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N BtnPoint.setText("."); BtnPoint.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { BtnPointActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(Btn4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Btn5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Btn6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnMoins)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addComponent(Btn1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Btn2)) .addComponent(Btn0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addComponent(Btn3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnFois)) .addGroup(layout.createSequentialGroup() .addComponent(BtnPoint) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnDiv, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnEgal)) .addComponent(resultatLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(Btn7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Btn8) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Btn9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnPlus) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(BtnC))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9, BtnC, BtnDiv, BtnEgal, BtnFois, BtnMoins, BtnPlus, BtnPoint}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(resultatLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Btn7) .addComponent(Btn8) .addComponent(Btn9) .addComponent(BtnPlus, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(BtnC)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Btn4) .addComponent(Btn5) .addComponent(Btn6) .addComponent(BtnMoins)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Btn1) .addComponent(Btn2) .addComponent(Btn3) .addComponent(BtnFois)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(Btn0) .addComponent(BtnDiv) .addComponent(BtnPoint)) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(BtnEgal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {Btn0, Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9, BtnC, BtnDiv, BtnFois, BtnMoins, BtnPlus, BtnPoint}); pack(); }// </editor-fold> private void Btn7ActionPerformed(java.awt.event.ActionEvent evt) { String car = "7"; str += car; resultatLabel.setText(str); } private void Btn8ActionPerformed(java.awt.event.ActionEvent evt) { String car ="8"; str += car; resultatLabel.setText(str); } private void Btn9ActionPerformed(java.awt.event.ActionEvent evt) { String car="9"; str += car; resultatLabel.setText(str); } private void Btn4ActionPerformed(java.awt.event.ActionEvent evt) { String car="4"; str += car; resultatLabel.setText(str); } private void Btn5ActionPerformed(java.awt.event.ActionEvent evt) { String car="5"; str += car; resultatLabel.setText(str); } private void Btn6ActionPerformed(java.awt.event.ActionEvent evt) { String car="6"; str += car; resultatLabel.setText(str); } private void Btn1ActionPerformed(java.awt.event.ActionEvent evt) { String car="1"; str += car; resultatLabel.setText(str); } private void Btn2ActionPerformed(java.awt.event.ActionEvent evt) { String car="2"; str += car; resultatLabel.setText(str); } private void Btn3ActionPerformed(java.awt.event.ActionEvent evt) { String car="3"; str += car; resultatLabel.setText(str); } private void BtnPointActionPerformed(java.awt.event.ActionEvent evt) { String car="."; if(str.indexOf(".")==-1) str+=car; resultatLabel.setText(str); } private void Btn0ActionPerformed(java.awt.event.ActionEvent evt) { String car="0"; str += car; resultatLabel.setText(str); } private void BtnPlusActionPerformed(java.awt.event.ActionEvent evt) { operateur="+"; calc.ajoute(Double.parseDouble(str)); str=""; // resultatLabel.setText(Double.toString(calc.getResultat())); } private void BtnMoinsActionPerformed(java.awt.event.ActionEvent evt) { operateur="-"; calc.soustrait(Double.parseDouble(str)); str=""; // resultatLabel.setText(Double.toString(calc.getResultat())); } private void BtnEgalActionPerformed(java.awt.event.ActionEvent evt) { switch(operateur){ case "+" : calc.ajoute(Double.parseDouble(str)); break; case "-" : calc.soustrait(Double.parseDouble(str)); break; } // if(operateur=="+") calc.ajoute(Double.parseDouble(str)); calc.getResultat(); str=""; resultatLabel.setText(Double.toString(calc.getResultat())); } private void BtnCActionPerformed(java.awt.event.ActionEvent evt) { calc.setResultat(0); str=""; resultatLabel.setText("0"); } private void BtnFoisActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void BtnDivActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(CalculatriceSwing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(CalculatriceSwing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(CalculatriceSwing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(CalculatriceSwing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new CalculatriceSwing().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 BtnC; private javax.swing.JButton BtnDiv; private javax.swing.JButton BtnEgal; private javax.swing.JButton BtnFois; private javax.swing.JButton BtnMoins; private javax.swing.JButton BtnPlus; private javax.swing.JButton BtnPoint; private javax.swing.JLabel resultatLabel; // End of variables declaration }
Et voici la classe calculatrice
public class Calculatrice { private double resultat; public Calculatrice(){ resultat=0; } public double getResultat(){ return resultat; } public void setResultat(double val){ resultat = val; } public double ajoute(double val){ return resultat += val; } public double multiplie(double val){ return resultat *= val; } public double divise(double val){ return resultat /= val; } public double soustrait(double val){ return resultat -= val; } }
Afficher la suite