Jump to content


Problème d'un tp de calculatrice en java


SoftDeath
 Share

Recommended Posts

Salut

J'ai essayé d'améliorer un programme déjà réaliser mais minimal je l'ai améliorer en y incluant de nouvelles fonctions tells que le Sinus, Cosinus ... Mais le blem c'est que ces dernières ne veulent pas fonctionner, peut être qu'il y a des personnes compétentes dans ce domaines, qui pourraient m'aider merci :

 

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

 

 

public class Calculatrice extends JFrame {

 

        private JPanel container = new JPanel();

       

        String[] tab_string = {"SIN","COS","TAN","x^y","abs","1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", "=", "C", "+", "-", "*", "/"};

        JButton[] tab_button = new JButton[tab_string.length];

       

        private JLabel ecran = new JLabel();

        private Dimension dim = new Dimension(50, 40);

        private Dimension dim2 = new Dimension(50, 31);

        private double chiffre1;

        private boolean clicOperateur = false, update = false;

        private boolean clicScientifique = false;

        private String operateur = "", scientifiques = "";

 

 

       

        public Calculatrice(){

               

                this.setSize(340, 260);

                this.setTitle("Calculette");

                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                this.setLocationRelativeTo(null);

                this.setResizable(false);

                initComposant();

                this.setContentPane(container);

                this.setVisible(true);

        }

       

        private void initComposant(){

 

                Font police = new Font("Arial", Font.BOLD, 20);

                ecran = new JLabel("0");

                ecran.setFont(police);

                ecran.setHorizontalAlignment(JLabel.RIGHT);

                ecran.setPreferredSize(new Dimension(220, 20));

               

                JPanel operateur = new JPanel();       

                operateur.setPreferredSize(new Dimension(55, 225));

                JPanel scientifique = new JPanel();       

                scientifique.setPreferredSize(new Dimension(55, 225));

                JPanel chiffre = new JPanel();

                chiffre.setPreferredSize(new Dimension(165, 225));

                JPanel panEcran = new JPanel();

                panEcran.setPreferredSize(new Dimension(220, 30));

 

               

                for(int i = 0; i < tab_string.length; i++)

                {

                   

                    tab_button = new JButton(tab_string);

                    tab_button.setPreferredSize(dim);

                   

                    switch(i){

               

                    case 0:

                    tab_button.addActionListener(new SINListener());

                scientifique.add(tab_button);

                tab_button.setPreferredSize(dim2);

                break;

                    case 1:

                    tab_button.addActionListener(new COSListener());

                scientifique.add(tab_button);

                tab_button.setPreferredSize(dim2);

                break;

                    case 2:

                    tab_button.addActionListener(new TANListener());

                scientifique.add(tab_button);

                tab_button.setPreferredSize(dim2);

                break;

                    case 3:

                    tab_button.addActionListener(new POWListener());

                scientifique.add(tab_button);

                tab_button.setPreferredSize(dim2);

                break;

                    case 4:

                    tab_button.addActionListener(new ABSListener());

                    tab_button.setPreferredSize(dim2);

                scientifique.add(tab_button);

                break;

                   

                    case 16 :

                    tab_button.addActionListener(new EgalListener());

                    chiffre.add(tab_button);

                    break;

                   

                    case 17 :

                    tab_button.setForeground(Color.red);

                        tab_button.addActionListener(new ResetListener());

                        operateur.add(tab_button);

                    break;

                       

                    case 18 :

                    tab_button.addActionListener(new PlusListener());

                    tab_button.setPreferredSize(dim2);

                    operateur.add(tab_button);

                    break;

                   

                    case 19 :

                    tab_button.addActionListener(new MoinsListener());

                    tab_button.setPreferredSize(dim2);

                    operateur.add(tab_button);

                    break;

                   

                    case 20 :

                    tab_button.addActionListener(new MultiListener());

                    tab_button.setPreferredSize(dim2);

                    operateur.add(tab_button);

                    break;

                   

                    case 21 :

                    tab_button.addActionListener(new DivListener());

                    tab_button.setPreferredSize(dim2);

                    operateur.add(tab_button);

                    break;

                                       

                    default :

                    chiffre.add(tab_button);

                    tab_button.addActionListener(new ChiffreListener());

                    break;

                    }

                   

                }

               

                panEcran.add(ecran);

                panEcran.setBorder(BorderFactory.createLineBorder(Color.black));

 

                container.add(panEcran, BorderLayout.NORTH);

                container.add(chiffre, BorderLayout.CENTER);

                container.add(operateur, BorderLayout.EAST);

                container.add(scientifique, BorderLayout.WEST);

               

        }

       

       

        private void calcul(){

                if(operateur.equals("+"))

                {

                        chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue();

                        ecran.setText(String.valueOf(chiffre1));

                }

                       

                if(operateur.equals("-"))

                {

                        chiffre1 = chiffre1 - Double.valueOf(ecran.getText()).doubleValue();

                        ecran.setText(String.valueOf(chiffre1));

                }             

               

                if(operateur.equals("*"))

                {

                        chiffre1 = chiffre1 * Double.valueOf(ecran.getText()).doubleValue();

                        ecran.setText(String.valueOf(chiffre1));

                }     

                       

                if(operateur.equals("/"))

                {

                        try{

                                chiffre1 = chiffre1 / Double.valueOf(ecran.getText()).doubleValue();

                                ecran.setText(String.valueOf(chiffre1));

                        }catch(ArithmeticException e){

                                ecran.setText("0");

                        }

                }

                if(scientifiques.equals("SIN"))

                {

                     

                chiffre1 = Math.sin(Double.valueOf(ecran.getText()).doubleValue());

                                ecran.setText(String.valueOf(chiffre1));

                     

                }

                if(scientifiques.equals("COS"))

                {

                     

                chiffre1 = Math.cos(Double.valueOf(ecran.getText()).doubleValue());

                                ecran.setText(String.valueOf(chiffre1));

                     

                }

                if(scientifiques.equals("TAN"))

                {

                     

                chiffre1 = Math.tan(Double.valueOf(ecran.getText()).doubleValue());

                                ecran.setText(String.valueOf(chiffre1));

                     

                }

                if(scientifiques.equals("x^y"))

                {

                     

                chiffre1 = Math.pow(chiffre1, Double.valueOf(ecran.getText()).doubleValue());

                                ecran.setText(String.valueOf(chiffre1));

                     

                }

                if(scientifiques.equals("abs"))

                {

                     

                chiffre1 = Math.abs(Double.valueOf(ecran.getText()).doubleValue());

                                ecran.setText(String.valueOf(chiffre1));

                     

                }

        }

       

        class ChiffreListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent e) {

                   

                        String str = ((JButton)e.getSource()).getText();

                       

                        if(update)

                        {

                                update = false;

                        }

                        else

                        {

                                if(!ecran.getText().equals("0"))

                                        str = ecran.getText() + str;

                        }

                       

                        ecran.setText(str);

                }

               

        }

 

       

        class EgalListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                        calcul();

                        update = true;

                        clicOperateur = false;

                        clicScientifique = false;

                }

               

        }

       

       

        class PlusListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                       

                        if(clicOperateur)

                        {

                                calcul();

                                ecran.setText(String.valueOf(chiffre1));

                        }

                        else

                        {

                                chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                                clicOperateur = true;

                        }

                        operateur = "+";

                        update = true;

                }

               

        }

       

        class MoinsListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                        if(clicOperateur)

                        {

                                calcul();

                                ecran.setText(String.valueOf(chiffre1));

                        }

                        else

                        {

                                chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                                clicOperateur = true;

                        }

                        operateur = "-";

                        update = true;

                }

               

        }

       

       

        class MultiListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                        if(clicOperateur)

                        {

                                calcul();

                                ecran.setText(String.valueOf(chiffre1));

                        }

                        else

                        {

                                chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                                clicOperateur = true;

                        }

                        operateur = "*";

                        update = true;

                }

               

        }

       

       

        class DivListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                        if(clicOperateur)

                        {

                                calcul();

                                ecran.setText(String.valueOf(chiffre1));

                        }

                        else

                        {

                                chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                                clicOperateur = true;

                               

                        }

                        operateur = "/";

                        update = true;

                }

               

        }

       

        class SINListener implements ActionListener{

       

            @Override

            public void actionPerformed(ActionEvent arg0) {

                    if(clicScientifique)

                    {

                            calcul();

                            ecran.setText(String.valueOf(chiffre1));

                    }

                    else

                    {

                    chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                            clicScientifique = true;

                           

                    }

                    operateur = "SIN";

                    update = true;

            }

           

    }

       

        class COSListener implements ActionListener{

     

            @Override

            public void actionPerformed(ActionEvent arg0) {

                    if(clicScientifique)

                    {

                            calcul();

                            ecran.setText(String.valueOf(chiffre1));

                    }

                    else

                    {

                    chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                            clicScientifique = true;

                           

                    }

                    operateur = "COS";

                    update = true;

            }

           

    }

       

        class TANListener implements ActionListener{

     

            @Override

            public void actionPerformed(ActionEvent arg0) {

                    if(clicScientifique)

                    {

                            calcul();

                            ecran.setText(String.valueOf(chiffre1));

                    }

                    else

                    {

                    chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                            clicScientifique = true;

                           

                    }

                    operateur = "TAN";

                    update = true;

            }

           

    }

       

        class POWListener implements ActionListener{

     

            @Override

            public void actionPerformed(ActionEvent arg0) {

                    if(clicScientifique)

                    {

                            calcul();

                            ecran.setText(String.valueOf(chiffre1));

                    }

                    else

                    {

                    chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                            clicScientifique = true;

                           

                    }

                    operateur = "x^y";

                    update = true;

            }

           

    }

       

        class ABSListener implements ActionListener{

     

            @Override

            public void actionPerformed(ActionEvent arg0) {

                    if(clicScientifique)

                    {

                            calcul();

                            ecran.setText(String.valueOf(chiffre1));

                    }

                    else

                    {

                    chiffre1 = Double.valueOf(ecran.getText()).doubleValue();

                            clicScientifique = true;

                           

                    }

                    operateur = "abs";

                    update = true;

            }

           

    }

       

        class ResetListener implements ActionListener{

 

                @Override

                public void actionPerformed(ActionEvent arg0) {

                        clicOperateur = false;

                        update = true;

                        chiffre1 = 0;

                        operateur = "";

                        scientifiques = "";

                        clicScientifique = false;

                        ecran.setText("");

                }

               

        }

       

}

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...