Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.GridLayout;
- import java.awt.event.ActionListener;
- import java.awt.event.ActionEvent;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- public class Fenetre extends JFrame {
- //voir page 249 du PDF
- //On déclare trois JPanel et un JLabel.
- // L'un contient un GridLayout (pour les nombres), l'autre, un BorderLayout
- // Le JLabel par exemple, qui servira d'ecran, est lié au Panel Border en position NORD.
- JPanel Border = new JPanel();
- BorderLayout disposition = new BorderLayout();
- JPanel Grid = new JPanel();
- GridLayout touches = new GridLayout(4,3,3,3);
- JPanel Opera = new JPanel();
- GridLayout Ope = new GridLayout(5,1,0,2); //note : plus le chiffre de gauche est élevé, plus le rendu est petit
- JLabel ecran = new JLabel();
- private double result;
- private String Operateur;
- private boolean update = true;
- private boolean clicOperator = false;
- //Configuration de la fenêtre
- public Fenetre(){
- Border.setLayout(disposition);
- Grid.setLayout(touches);
- Opera.setLayout(Ope);
- ecran = new JLabel("0");
- ecran.setPreferredSize(new Dimension(1, 35));
- Border.add(ecran, disposition.NORTH); //Label au Nord
- Border.add(Grid, disposition.CENTER); //Le Panel Grid des touches de la cacul' au Sud
- Border.add(Opera, disposition.EAST);
- ecran.setHorizontalAlignment(JLabel.CENTER);
- ecran.setBorder(BorderFactory.createLineBorder(Color.black));
- this.setTitle("Calculatrice");
- this.setSize(250,300);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setLocationRelativeTo(null);
- this.setContentPane(Border);
- // Déclaration des boutons, mis en écoute d'un ActionListener + lié à une classe interne plus bas.
- JButton un = new JButton("1");
- un.addActionListener(new Boutonun());
- JButton deux = new JButton("2");
- deux.addActionListener(new Boutondeux());
- JButton trois = new JButton("3");
- trois.addActionListener(new Boutontrois());
- JButton quatre = new JButton("4");
- quatre.addActionListener(new Boutonquatre());
- JButton cinq = new JButton("5");
- cinq.addActionListener(new Boutoncinq());
- JButton six = new JButton("6");
- six.addActionListener(new Boutonsix());
- JButton sept = new JButton("7");
- sept.addActionListener(new Boutonsept());
- JButton huit = new JButton("8");
- huit.addActionListener(new Boutonhuit());
- JButton neuf = new JButton("9");
- neuf.addActionListener(new Boutonneuf());
- JButton zero = new JButton("0");
- zero.addActionListener(new Boutonzero());
- JButton virgule = new JButton(".");
- virgule.addActionListener(new Boutonvirgule());
- JButton egale = new JButton("=");
- egale.addActionListener(new Boutonegale());
- JButton Effacer = new JButton("C");
- Effacer.addActionListener(new Boutoneffacer());
- JButton Addition = new JButton("+");
- Addition.addActionListener(new Boutonaddition());
- JButton Soustraction = new JButton("-");
- Soustraction.addActionListener(new Boutonsoustraction());
- JButton Multiplication = new JButton("*");
- Multiplication.addActionListener(new Boutonmultiplication());
- JButton Division = new JButton("/");
- Division.addActionListener(new Boutondivision());
- JButton numbers = new JButton("/");
- numbers.addActionListener(new NumberListener());
- Grid.add(un);
- Grid.add(deux);
- Grid.add(trois);
- Grid.add(quatre);
- Grid.add(cinq);
- Grid.add(six);
- Grid.add(sept);
- Grid.add(huit);
- Grid.add(neuf);
- Grid.add(zero);
- Grid.add(virgule);
- Grid.add(egale);
- Opera.add(Effacer);
- Opera.add(Addition);
- Opera.add(Soustraction);
- Opera.add(Multiplication);
- Opera.add(Division);
- this.setVisible(true);
- }
- // Double result prend la valeur du premier nombre que l'on affiche a l'ecran
- class Boutonun implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "1");
- }
- }
- class Boutondeux implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "2");
- }
- }
- class Boutontrois implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "3");
- }
- }
- class Boutonquatre implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "4");
- }
- }
- class Boutoncinq implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "5");
- }
- }
- class Boutonsix implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "6");
- }
- }
- class Boutonsept implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "7");
- }
- }
- class Boutonhuit implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "8");
- }
- }
- class Boutonneuf implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "9");
- }
- }
- class Boutonzero implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- result = Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(ecran.getText() + "0");
- }
- }
- class Boutonvirgule implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- ecran.setText(ecran.getText() + ".");
- }
- }
- //--------------------------------------------------------------------------
- private void Calcul(){
- if(Operateur.equals("+")){
- result = result + Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(String.valueOf(result));
- }
- else if (Operateur.equals("-")){
- result = result - Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(String.valueOf(result));
- }
- else if (Operateur.equals("*")){
- result = result * Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(String.valueOf(result));
- }
- else if (Operateur.equals("/")){
- result = result / Double.valueOf(ecran.getText()).doubleValue();
- ecran.setText(String.valueOf(result));
- }
- }
- //-----------------------------------------------------------------------------------
- class NumberListener implements ActionListener {
- public void actionPerformed(ActionEvent arg0) {
- String str = ((JButton)arg0.getSource()).getText();
- if (update) { //si il faut mettre à jour l'écran (reset)
- if (str == ".") { //si on appuit en premier sur la touche point
- str = ecran.getText() + str;
- ecran.setText(str);
- }
- else {
- ecran.setText(str);
- }
- update = false;
- }
- else { //si il faut continuer à écrire
- str = ecran.getText() + str;
- ecran.setText(str);
- }
- }
- }
- //-----------------------------------------------------------------------------------
- class Boutoneffacer implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- ecran.setText("0");
- update = true;
- }
- }
- //String Operateur prend la valeur d'un des opérateurs des boutons correspondant
- class Boutonaddition implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- if (clicOperator) {
- Calcul();
- ecran.setText(String.valueOf(result));
- }
- else {
- result = Double.valueOf(ecran.getText()).doubleValue();
- clicOperator = true;
- }
- Operateur = "+";
- update = true;
- }
- }
- class Boutonsoustraction implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- if (clicOperator) {
- Calcul();
- ecran.setText(String.valueOf(result));
- }
- else {
- result = Double.valueOf(ecran.getText()).doubleValue();
- clicOperator = true;
- }
- Operateur = "-";
- update = true;
- }
- }
- class Boutonmultiplication implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- if (clicOperator) {
- Calcul();
- ecran.setText(String.valueOf(result));
- }
- else {
- result = Double.valueOf(ecran.getText()).doubleValue();
- clicOperator = true;
- }
- Operateur = "*";
- update = true;
- }
- }
- class Boutondivision implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- if (clicOperator) {
- Calcul();
- ecran.setText(String.valueOf(result));
- }
- else {
- result = Double.valueOf(ecran.getText()).doubleValue();
- clicOperator = true;
- }
- Operateur = "/";
- update = true;
- }
- }
- //Les calculs ! Selon tel operateur, on prend result, puis le second nombre entré...
- class Boutonegale implements ActionListener{
- public void actionPerformed(ActionEvent arg0) {
- Calcul();
- update = true;
- clicOperator = false;
- Operateur = "";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement