Advertisement
Guest User

MonCode

a guest
Oct 22nd, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.28 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.GridLayout;
  5. import java.awt.event.ActionListener;
  6. import java.awt.event.ActionEvent;
  7.  
  8. import javax.swing.BorderFactory;
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JPanel;
  13.  
  14.  
  15. public class Fenetre extends JFrame {
  16.    
  17. //voir page 249 du PDF
  18. //On déclare trois JPanel et un JLabel.
  19. // L'un contient un GridLayout (pour les nombres), l'autre, un BorderLayout
  20. // Le JLabel par exemple, qui servira d'ecran, est lié au Panel Border en position NORD.
  21.    
  22. JPanel Border = new JPanel();
  23. BorderLayout disposition = new BorderLayout();
  24.  
  25. JPanel Grid = new JPanel();
  26. GridLayout touches = new GridLayout(4,3,3,3);
  27.  
  28. JPanel Opera = new JPanel();
  29. GridLayout Ope = new GridLayout(5,1,0,2); //note : plus le chiffre de gauche est élevé, plus le rendu est petit
  30.  
  31. JLabel ecran = new JLabel();
  32.  
  33. private double result;
  34. private String Operateur;
  35. private boolean update = true;
  36. private boolean clicOperator = false;
  37.  
  38. //Configuration de la fenêtre
  39.    
  40. public Fenetre(){
  41.    
  42. Border.setLayout(disposition);
  43. Grid.setLayout(touches);
  44. Opera.setLayout(Ope);
  45.  
  46. ecran = new JLabel("0");
  47. ecran.setPreferredSize(new Dimension(1, 35));
  48. Border.add(ecran, disposition.NORTH); //Label au Nord
  49. Border.add(Grid, disposition.CENTER); //Le Panel Grid des touches de la cacul' au Sud
  50. Border.add(Opera, disposition.EAST);
  51. ecran.setHorizontalAlignment(JLabel.CENTER);
  52. ecran.setBorder(BorderFactory.createLineBorder(Color.black));
  53.    
  54. this.setTitle("Calculatrice");
  55. this.setSize(250,300);
  56. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  57. this.setLocationRelativeTo(null);
  58. this.setContentPane(Border);
  59.  
  60. // Déclaration des boutons, mis en écoute d'un ActionListener + lié à une classe interne plus bas.
  61.  
  62. JButton un = new JButton("1");
  63. un.addActionListener(new Boutonun());
  64.  
  65. JButton deux = new JButton("2");
  66. deux.addActionListener(new Boutondeux());
  67.  
  68. JButton trois = new JButton("3");
  69. trois.addActionListener(new Boutontrois());
  70.  
  71. JButton quatre = new JButton("4");
  72. quatre.addActionListener(new Boutonquatre());
  73.  
  74. JButton cinq = new JButton("5");
  75. cinq.addActionListener(new Boutoncinq());
  76.  
  77. JButton six = new JButton("6");
  78. six.addActionListener(new Boutonsix());
  79.  
  80. JButton sept = new JButton("7");
  81. sept.addActionListener(new Boutonsept());
  82.  
  83. JButton huit = new JButton("8");
  84. huit.addActionListener(new Boutonhuit());
  85.  
  86. JButton neuf = new JButton("9");
  87. neuf.addActionListener(new Boutonneuf());
  88.  
  89. JButton zero = new JButton("0");
  90. zero.addActionListener(new Boutonzero());
  91.  
  92. JButton virgule = new JButton(".");
  93. virgule.addActionListener(new Boutonvirgule());
  94.  
  95. JButton egale = new JButton("=");
  96. egale.addActionListener(new Boutonegale());
  97.  
  98. JButton Effacer = new JButton("C");
  99. Effacer.addActionListener(new Boutoneffacer());
  100.  
  101. JButton Addition = new JButton("+");
  102. Addition.addActionListener(new Boutonaddition());
  103.  
  104. JButton Soustraction = new JButton("-");
  105. Soustraction.addActionListener(new Boutonsoustraction());
  106.  
  107. JButton Multiplication = new JButton("*");
  108. Multiplication.addActionListener(new Boutonmultiplication());
  109.  
  110. JButton Division = new JButton("/");
  111. Division.addActionListener(new Boutondivision());
  112.  
  113. JButton numbers = new JButton("/");
  114. numbers.addActionListener(new NumberListener());
  115.  
  116.  
  117.  
  118. Grid.add(un);
  119. Grid.add(deux);
  120. Grid.add(trois);
  121. Grid.add(quatre);
  122. Grid.add(cinq);
  123. Grid.add(six);
  124. Grid.add(sept);
  125. Grid.add(huit);
  126. Grid.add(neuf);
  127. Grid.add(zero);
  128. Grid.add(virgule);
  129. Grid.add(egale);
  130.  
  131. Opera.add(Effacer);
  132. Opera.add(Addition);
  133. Opera.add(Soustraction);
  134. Opera.add(Multiplication);
  135. Opera.add(Division);
  136.  
  137.  
  138.  
  139. this.setVisible(true);
  140. }
  141.  
  142. // Double result prend la valeur du premier nombre que l'on affiche a l'ecran
  143.  
  144.  
  145. class Boutonun implements ActionListener{
  146. public void actionPerformed(ActionEvent arg0) {
  147. result = Double.valueOf(ecran.getText()).doubleValue();
  148. ecran.setText(ecran.getText() + "1");
  149. }
  150. }
  151.  
  152. class Boutondeux implements ActionListener{
  153. public void actionPerformed(ActionEvent arg0) {
  154. result = Double.valueOf(ecran.getText()).doubleValue();
  155. ecran.setText(ecran.getText() + "2");
  156.  
  157. }
  158. }
  159.  
  160.  
  161. class Boutontrois implements ActionListener{
  162. public void actionPerformed(ActionEvent arg0) {
  163. result = Double.valueOf(ecran.getText()).doubleValue();
  164. ecran.setText(ecran.getText() + "3");
  165. }
  166. }
  167.  
  168. class Boutonquatre implements ActionListener{
  169. public void actionPerformed(ActionEvent arg0) {
  170. result = Double.valueOf(ecran.getText()).doubleValue();
  171. ecran.setText(ecran.getText() + "4");
  172. }
  173. }
  174.  
  175. class Boutoncinq implements ActionListener{
  176. public void actionPerformed(ActionEvent arg0) {
  177. result = Double.valueOf(ecran.getText()).doubleValue();
  178. ecran.setText(ecran.getText() + "5");
  179. }
  180. }
  181.  
  182. class Boutonsix implements ActionListener{
  183. public void actionPerformed(ActionEvent arg0) {
  184. result = Double.valueOf(ecran.getText()).doubleValue();
  185. ecran.setText(ecran.getText() + "6");
  186. }
  187. }
  188.  
  189. class Boutonsept implements ActionListener{
  190. public void actionPerformed(ActionEvent arg0) {
  191. result = Double.valueOf(ecran.getText()).doubleValue();
  192. ecran.setText(ecran.getText() + "7");
  193. }
  194. }
  195.  
  196. class Boutonhuit implements ActionListener{
  197. public void actionPerformed(ActionEvent arg0) {
  198. result = Double.valueOf(ecran.getText()).doubleValue();
  199. ecran.setText(ecran.getText() + "8");
  200. }
  201. }
  202.  
  203. class Boutonneuf implements ActionListener{
  204. public void actionPerformed(ActionEvent arg0) {
  205. result = Double.valueOf(ecran.getText()).doubleValue();
  206. ecran.setText(ecran.getText() + "9");
  207. }
  208. }
  209.  
  210. class Boutonzero implements ActionListener{
  211. public void actionPerformed(ActionEvent arg0) {
  212. result = Double.valueOf(ecran.getText()).doubleValue();
  213. ecran.setText(ecran.getText() + "0");
  214. }
  215. }
  216.  
  217. class Boutonvirgule implements ActionListener{
  218. public void actionPerformed(ActionEvent arg0) {
  219. ecran.setText(ecran.getText() + ".");
  220. }
  221. }
  222.  
  223. //--------------------------------------------------------------------------
  224.  
  225.  
  226. private void Calcul(){
  227. if(Operateur.equals("+")){
  228.     result = result + Double.valueOf(ecran.getText()).doubleValue();
  229.     ecran.setText(String.valueOf(result));
  230.     }
  231.  
  232.     else if (Operateur.equals("-")){
  233.     result = result - Double.valueOf(ecran.getText()).doubleValue();
  234.     ecran.setText(String.valueOf(result));
  235.     }
  236.  
  237.     else if (Operateur.equals("*")){
  238.     result = result * Double.valueOf(ecran.getText()).doubleValue();
  239.     ecran.setText(String.valueOf(result));
  240.     }
  241.  
  242.     else if (Operateur.equals("/")){
  243.     result = result / Double.valueOf(ecran.getText()).doubleValue();
  244.     ecran.setText(String.valueOf(result));
  245.    
  246.     }
  247. }
  248.  
  249.  
  250. //-----------------------------------------------------------------------------------
  251.  
  252. class NumberListener implements ActionListener {
  253.    
  254.     public void actionPerformed(ActionEvent arg0) {
  255.        String str = ((JButton)arg0.getSource()).getText();
  256.        
  257.        if (update) {  //si il faut mettre à jour l'écran (reset)
  258.           if (str == ".") {  //si on appuit en premier sur la touche point
  259.              str = ecran.getText() + str;
  260.              ecran.setText(str);
  261.           }
  262.           else {
  263.              ecran.setText(str);
  264.           }
  265.           update = false;
  266.        }
  267.        else {  //si il faut continuer à écrire
  268.           str = ecran.getText() + str;
  269.           ecran.setText(str);
  270.        }
  271.     }
  272.  }
  273.  
  274.  
  275. //-----------------------------------------------------------------------------------
  276.  
  277.  
  278. class Boutoneffacer implements ActionListener{
  279. public void actionPerformed(ActionEvent arg0) {
  280. ecran.setText("0");
  281. update = true;
  282. }
  283. }
  284.  
  285. //String Operateur prend la valeur d'un des opérateurs des boutons correspondant
  286.  
  287. class Boutonaddition implements ActionListener{
  288. public void actionPerformed(ActionEvent arg0) {
  289. if (clicOperator) {
  290. Calcul();
  291. ecran.setText(String.valueOf(result));
  292. }
  293. else {
  294. result = Double.valueOf(ecran.getText()).doubleValue();
  295. clicOperator = true;
  296. }
  297. Operateur = "+";
  298. update = true;        
  299.   }
  300.  
  301. }
  302.  
  303. class Boutonsoustraction implements ActionListener{
  304. public void actionPerformed(ActionEvent arg0) {
  305.  
  306.     if (clicOperator) {
  307.         Calcul();
  308.         ecran.setText(String.valueOf(result));
  309.      }
  310.      else {
  311.         result = Double.valueOf(ecran.getText()).doubleValue();
  312.         clicOperator = true;
  313.      }
  314.      Operateur = "-";
  315.      update = true;
  316.   }
  317.  
  318. }
  319.  
  320. class Boutonmultiplication implements ActionListener{
  321. public void actionPerformed(ActionEvent arg0) {
  322.  
  323.    
  324.     if (clicOperator) {
  325.         Calcul();
  326.         ecran.setText(String.valueOf(result));
  327.      }
  328.      else {
  329.         result = Double.valueOf(ecran.getText()).doubleValue();
  330.         clicOperator = true;
  331.      }
  332.      Operateur = "*";
  333.      update = true;
  334.   }
  335.  
  336. }  
  337.  
  338. class Boutondivision implements ActionListener{
  339. public void actionPerformed(ActionEvent arg0) {
  340.  
  341.     if (clicOperator) {
  342.         Calcul();
  343.         ecran.setText(String.valueOf(result));
  344.      }
  345.      else {
  346.         result = Double.valueOf(ecran.getText()).doubleValue();
  347.         clicOperator = true;
  348.      }
  349.      Operateur = "/";
  350.      update = true;            
  351.   }
  352.  
  353. }
  354.  
  355. //Les calculs ! Selon tel operateur, on prend result, puis le second nombre entré...
  356.  
  357. class Boutonegale implements ActionListener{
  358. public void actionPerformed(ActionEvent arg0) {
  359. Calcul();
  360. update = true;
  361. clicOperator = false;
  362. Operateur = "";
  363. }
  364.  
  365.  
  366. }
  367.  
  368.  
  369.        }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement