Cherche le code de calculatrice en java

Bonjour,

est ce que quelqu un pourrait m'aider pour trouver un code en java de calculatrice qui calcul aussi le cos sin et tang je suis debutante jai reussi a faire linterface mais impossible pour moi d'ecrire le code pour les calcul je narrive pas a le faire :s

2 réponses

  1. il ya une erreur dans le code je ne sais pas ou exactement!!!!
    0
    1. est ce que tu peux nous aider avec le message d'erreur?
      0
    2. j'ai pu voir un (lignes 134 et 135):
      //On affiche le chiffre en plus dans le
      label


      qui doit etre juste corrigé:
      //On affiche le chiffre en plus dans le label
      


      et peut etre qu'il y'en a d'autre...
      0
  2. Bonsoir,

    Cette solution est issue du siteduzero, qui est un TP.

    La classe Main:

    public class Main {
    /**
    * @param args
    */
    public static void main(String[] args) {
    Calculatrice calculette = new Calculatrice();
    }
    } 


    La classe Calculatrice:

    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 = {"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 String operateur = "";
    public Calculatrice(){
    this.setSize(240, 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 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[i] = new JButton(tab_string[i]);
    tab_button[i].setPreferredSize(dim);
    switch(i){
    case 11 :
    tab_button[i].addActionListener(new
    EgalListener());
    chiffre.add(tab_button[i]);
    break;
    case 12 :
    tab_button[i].setForeground(Color.red);
    tab_button[i].addActionListener(new
    ResetListener());
    tab_button[i].setPreferredSize(dim2);
    operateur.add(tab_button[i]);
    break;
    case 13 :
    tab_button[i].addActionListener(new
    PlusListener());
    tab_button[i].setPreferredSize(dim2);
    operateur.add(tab_button[i]);
    break;
    case 14 :
    tab_button[i].addActionListener(new
    MoinsListener());
    tab_button[i].setPreferredSize(dim2);
    operateur.add(tab_button[i]);
    break;
    case 15 :
    tab_button[i].addActionListener(new
    MultiListener());
    tab_button[i].setPreferredSize(dim2);
    operateur.add(tab_button[i]);
    break;
    case 16 :
    tab_button[i].addActionListener(new
    DivListener());
    tab_button[i].setPreferredSize(dim2);
    operateur.add(tab_button[i]);
    break;
    default :
    chiffre.add(tab_button[i]);
    tab_button[i].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);
    }
    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");
    }
    }
    }
    class ChiffreListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
    //On affiche le chiffre en plus dans le
    label
    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;
    }
    }
    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 ResetListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent arg0) {
    clicOperateur = false;
    update = true;
    chiffre1 = 0;
    operateur = "";
    ecran.setText("");
    }
    }
    }


    On peut encore ajouter les boutons pour sinus et cosinus, mais je te laisse le temps de comprendre le code et de faire le premier essaie.

    Bonne chance
    1