IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Une Calculatrice Java


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    Par défaut Une Calculatrice Java
    Bonjour,

    Grand débutant Java j'essaye de créer une petite calculatrice toute simple qui ne sait même pas additionner etc... plusieurs nombres.
    La clculatrice saurait juste soustraire, additionner, multiplier, diviser 2 nombres pas plus.

    Comment faire pour que la valeur de nb1, nb2 et source soient gardés en méméoire jusqu'a l'appuï de = ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTextField;
     
    class MaFenetre extends JFrame implements ActionListener
    {
     
    	public MaFenetre()
    	{
    		setTitle("Calculatrice");
    		setSize(400,500);
     
    		Container contenu = getContentPane();
    		contenu.setLayout(new GridLayout(4, 3, 6, 4));
    		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     
     
    		txt = new JTextField();
    		contenu.add(txt);
     
     
     
    		JButton un = new JButton("1");
    		contenu.add(un);
    		un.addActionListener(this);
     
    		JButton deux = new JButton("2");
    		contenu.add(deux);
    		deux.addActionListener(this);
     
    		JButton trois = new JButton("3");
    		contenu.add(trois);
    		trois.addActionListener(this);
     
    		JButton quatre = new JButton("4");
    		contenu.add(quatre);
    		quatre.addActionListener(this);
     
    		JButton cinq = new JButton("5");
    		contenu.add(cinq);
    		cinq.addActionListener(this);
     
    		JButton six = new JButton("6");
    		contenu.add(six);
    		six.addActionListener(this);
     
    		JButton sept = new JButton("7");
    		contenu.add(sept);
    		sept.addActionListener(this);
     
    		JButton huit = new JButton("8");
    		contenu.add(huit);
    		huit.addActionListener(this);
     
    		JButton neuf = new JButton("9");
    		contenu.add(neuf);
    		neuf.addActionListener(this);
     
    		JButton zero = new JButton("0");
    		contenu.add(zero);
    		zero.addActionListener(this);
     
    		JButton plus = new JButton("+");
    		contenu.add(plus);
    		plus.addActionListener(this);
     
    		JButton moins = new JButton("-");
    		contenu.add(moins);
    		moins.addActionListener(this);
     
    		JButton fois = new JButton("*");
    		contenu.add(fois);
    		fois.addActionListener(this);
     
    		JButton diviser = new JButton("/");
    		contenu.add(diviser);
    		diviser.addActionListener(this);
     
    		JButton egal = new JButton("=");
    		contenu.add(egal);
    		egal.addActionListener(this);	
    	}
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		String nb1 = arg0.getActionCommand();
    		String operateur = arg0.getActionCommand();
    		String nb2 = arg0.getActionCommand();
     
     
     
    		System.out.println(nb1);
    		System.out.println(nb2);
     
     
     
    		/*
    		int res = Integer.parseInt(source);
    		int total = res * res;
    		String affiche = String.valueOf(total);
    		txt.setText(affiche);
    		//*/
     
    		if(source == "=") 
    		{
    			if(operateur.equals("+"))
    			{
     
    			}
    			if(operateur.equals("-"))
    			{
     
    			}
    			if(operateur.equals("*"))
    			{
     
    			}
    			if(operateur.equals("/"))
    			{
     
    			}			
    		}
    	}
    	private int source;
    	private JTextField txt;
     
    }
     
     
    public class Main 
    {
    	public static void main(String args[])
    	{
    		MaFenetre calc = new MaFenetre();
    		calc.setVisible(true);
    	}
    }
    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Il suffit que tu déclares nb1 et nb2 en attributs de classe, comme source et txt.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par CheryBen Voir le message
    Il suffit que tu déclares nb1 et nb2 en attributs de classe, comme source et txt.
    Oui mais même en le déclarant comme paramètre, le bouton cliqué en premier n'est pas retenu ? Comment faire pour que les informations soient retenues ??

    Merci d'avance pour ta réponse

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Déjà tu n'as pas fait setActionCommand sur tes boutons, donc getActionCommand ne renverra rien (null je pense).

    Ensuite, un passage dans la methode actionPerformed correspond à un clic donc tu ne peux pas récupérer les 3 actions comme cela.

    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void actionPerformed(ActionEvent e) {
        String action = e.getActionCommand();
     
        if(action.matches("[0-9]")) {
        // verifie avec une regex si c'est un chiffre
            if(operateur == null) {
                // c'est toujours le premier nombre
                nb1.append("action");
            }
            else {
                nb2.append("action");
            }
        }
        else if (!action.equals("=")) {
            // c'est un opérateur
            operatur = action;
        }
        else {
            // on a fait "="
            // convertir les nb de String vers entiers et calculer
            // ...
        }
    }
    C'est un exemple quasiment complet, je pense que cela devrait fonctionner.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Je suis moi-même dans un Tuto ou il est question d'une calculatrice Java.
    Si tu ne suit pas déjà ce tuto cela pourrais te servir

    http://java.developpez.com/livres/javaEnfants/

  6. #6
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Une Calculatrice Java
    Salut
    Regarde cet exemple de calculatrice, les sources sont commentés.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 95
    Points
    95
    Par défaut
    Salut je ne sais pas si ton prob est réglé mais sinon voici une petite austuce.
    Imaginons que tu veuilles ajouter 1 et 2. Pour commencer, déclare 4 variable d'instance, deux pour les valeurs, une pour l'opérateur et une pour le resultat. Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String value1 = null;
    String value2 = null;
    String oper = null;
    String result = null;
    maintenant sur l'action associé au bouton correspondant le chiffre 1, tu fais ceci;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     private void jButtonUnActionPerformed(java.awt.event.ActionEvent evt) {
       //txt == JTextField
        String valeur = txt.getText();
        if (valeur!=null && valeur.length()==1 && valeur.equals("0"))
        {
            valeur ="";
        }
        txt.setText(valeur +"1");
        // ce code teste d'abord s'il ya déja un chifre dans le textfield ou pas. C'est pour que tu puisses taper plusieurs chiffres.
    }
    Ensuite sur l'action associé au bouton "plus"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void jButtonPlusActionPerformed(java.awt.event.ActionEvent evt) {
    this.oper = "+";
    this.value1 = txt.getText();//stocke la valeur dans la variable
    txt.setText("");//efface le contenu du TextField
    }
    Ensuite sur l'acion correesponsant au bouton "2"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Pareil que pour le bouton "1"
    private void jButtonDeuxActionPerformed(java.awt.event.ActionEvent evt) {
    String valeur = txt.getText();
        if (valeur!=null && valeur.length()==1 && valeur.equals("0"))
        {
            valeur ="";
        }
        txt.setText(valeur +"2");
    }
    puis bouton "="
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    private void jButtonEqualsActionPerformed(java.awt.event.ActionEvent evt)
    {
    this.value2 =txt.getText();
    if(value1!=null && value2!=null)
        if(oper.equals("+"))
        {
             result = ""+(Integer.parseInt(value1) + Integer.parseInt(value2));
         }
         else if (oper.equals("-"))
        {
              ....
              ....
        }//etc. etc.
         //affiche le resultat
          txt.setText(result);  
     }
    Voilà, j'espère que ça va t'aider. Bien évidemment, y plusieurs façons d'arriver au même resultat

Discussions similaires

  1. Création d'une calculatrice en Java
    Par angelka dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 05/12/2007, 19h19
  2. Réponses: 6
    Dernier message: 25/05/2007, 18h10
  3. [VB.NET] Passage de parametres à une Applet Java
    Par AntiSAL dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/08/2004, 11h04
  4. [Plugin][Débutant] Lancement d'une appli Java avec un plugin
    Par antares24 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 29/07/2004, 14h18
  5. [Executable] Executer une appli java facilement
    Par legend666 dans le forum Général Java
    Réponses: 7
    Dernier message: 13/06/2004, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo