Cherche le code de calculatrice en java
Fermé
mimo2222
Messages postés
19
Date d'inscription
samedi 30 novembre 2013
Statut
Membre
Dernière intervention
9 mars 2014
-
13 févr. 2014 à 00:11
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 - 14 févr. 2014 à 00:15
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 - 14 févr. 2014 à 00:15
A voir également:
- Calculatrice java
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
- Installer calculatrice sur mon portable - Télécharger - Calcul & Conversion
- Java jre - Télécharger - Langages
2 réponses
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
13 févr. 2014 à 19:39
13 févr. 2014 à 19:39
Bonsoir,
Cette solution est issue du siteduzero, qui est un TP.
La classe Main:
La classe Calculatrice:
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
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
mimo2222
Messages postés
19
Date d'inscription
samedi 30 novembre 2013
Statut
Membre
Dernière intervention
9 mars 2014
2
13 févr. 2014 à 22:02
13 févr. 2014 à 22:02
il ya une erreur dans le code je ne sais pas ou exactement!!!!
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
14 févr. 2014 à 00:13
14 févr. 2014 à 00:13
est ce que tu peux nous aider avec le message d'erreur?
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
Modifié par walidovich_85 le 14/02/2014 à 00:17
Modifié par walidovich_85 le 14/02/2014 à 00:17
j'ai pu voir un (lignes 134 et 135):
qui doit etre juste corrigé:
et peut etre qu'il y'en a d'autre...
//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...