Cherche le code de calculatrice en java
mimo2222
Messages postés
20
Statut
Membre
-
walidovich_85 Messages postés 698 Statut Membre -
walidovich_85 Messages postés 698 Statut Membre -
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
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
-
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
-
il ya une erreur dans le code je ne sais pas ou exactement!!!!