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

Java Discussion :

boolean à false et ensuite à true


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut boolean à false et ensuite à true
    Bonjour,
    je suis bloqué. Je ne comprends pas ce code. Pourquoi, pour créer une calculatrice, dans le egallistner, le booleen disant si on a cliqué doit passer à false et dans PlusListener il passe à true ?
    merci d'avance.
    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
     
    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");
    			}
    		}
    	}
     
    	//Listener utilisé pour les chiffres
    	//Permet de stocker les chiffres et de les afficher
    	class ChiffreListener implements ActionListener {
    		public void actionPerformed(ActionEvent e){
    			//On affiche le chiffre additionnel 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);
    		}
    	}
     
    	//Listener affecté au bouton =
    	class EgalListener implements ActionListener {
    		public void actionPerformed(ActionEvent arg0){
    			calcul();
    			update = true;
    			clicOperateur = false;
    		}
    	}
     
    	//Listener affecté au bouton +
    	class PlusListener implements ActionListener {
    		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;
    		}
    	}

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Bonjour,

    Ton code n'est malheureusement pas complet pour qu'on puisse te donner une réponse très précise car on ne sait pas quand est ce que tes listeners sont sollicités.
    Bon ,vu que c'est une calculatrice ,je suppose que tes listeners s'exectutent au click sur les bouton plus(Pluslistener) et egal(Egallistener).
    Le comportement (vu le code) est correct car le plus est sollicité avant le bouton egal donc le plusListener sera appelé avant;dans Pluslistener,il y a une clause (if/else) puis en sortant du listener,le Boolean update est setté a true.
    pourquoi?
    Pour faire la différence entre le premier chiffre et le deuxième chiffre entré: la deuxième fois que l'utilisateur entre un chiffre ,le Boolean est a true donc dans la fonction chiffrelistener il n'y a pas le même traitement.

    Le PlusListener sera le même que le MoinsListener etc il vaut donc mieux implementer un OperateurListener qui fera le travail pour tous les operateurs en utilisant un switch() et affecter l'operateur qu'il faut à Operateur.

    Ce qui me parait par contre bizar c'est pourquoi mettre update à true apres le EgalListener ??
    il doit y avoir une fonction qui reinitialise l'ecran a 0 et update à false pour un autre calcul... à part si la calculatrice autorise un autre calcul apres le egal et une reinitialisation a l'appuie du bouton "C"
    De toutes les facons tout le code est à revoir et à optimiser...

    Pour le Boolean operateur ,il passe a false dans le EgalListener et il passe a true au click sur un operateur;ce qui est normal...

    Il faut essayer d'etre plus clair dans ta question car on ne sait pas de quel boolean tu parles.Bref...

    Bon courage...

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    merci beaucoup c'est un code qui m'as traumatise ou il y a aucune explication de la conception de l'algorithme
    cordialement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Tu as eu les explications que tu cherchais ou bien il y a encore des questionnements.
    Si c'est le cas tu peux le passer a resolu!!
    merci à toi...
    Bon courage

  5. #5
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    bonjour juste une dèrniere question dans quel cas le clicOperateurdu du PlusListener est a true ?
    merci d'avance

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 433
    Par défaut
    en fait je n'arrive pas a comprendre quand es ce que l'on rentre dans le if de ce code help me
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class MoinsListener implements ActionListener {
    		public void actionPerformed(ActionEvent arg0){
    			if(clicOperateur){
    				calcul();
    				ecran.setText(String.valueOf(chiffre1));
    			}
    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 37
    Dernier message: 16/03/2017, 23h43
  2. variable boolean? true? ou false,
    Par ptinavir dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2010, 13h34
  3. Réponses: 1
    Dernier message: 03/03/2006, 12h07
  4. probleme affichage visible = true ou false
    Par Hitmaaan dans le forum Access
    Réponses: 4
    Dernier message: 29/09/2005, 13h17
  5. DBGrid Enabled true/false > pb de rafraichissement
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 14/10/2004, 16h50

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