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 :

Méthode selectedItem() ne fonctionne qu'à moitié


Sujet :

Java

  1. #1
    Membre à l'essai Avatar de fang44z
    Homme Profil pro
    Gardien de la matrice
    Inscrit en
    Mars 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Gardien de la matrice

    Informations forums :
    Inscription : Mars 2020
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Méthode selectedItem() ne fonctionne qu'à moitié
    Bonjour/Bonsoir,
    Je suis débutant en Java et je viens de voir récemment l'utilisation des formulaires tel que les JComboBox, JTextField ect... Et j'ai donc décidé de réviser un peux tout ca ce matin en créant un convertisseur de monnaie. Jusqu'ici tout va bien le seul soucis que j'ai rencontré c'est au niveau de ma JComboBox j'ai voulu crée un bouton qui switch de monnaie au moment du clique. Comme le titre l'indique ca fonctionne à moitié, quand je suis sur "€" le bouton ne fonctionne pas en revanche quand je suis sur "$" le bouton me renvoi sur "€". Et je n'arrive pas à comprendre d'où viens le problème je vais vous épargné 98% du reste du code qui n'a rien à voir avec mon problème, donc voici uniquement les parties de monde code qui sont en liens avec mon 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
    18
    19
    20
    21
    public class Fenetre extends JFrame {
         private JButton revertButton = new JButton("Switch");
         private JComboBox<String> box = new JComboBox<>();
         public Fenetre(){
            box.addItem("€");
            box.addItem("$");
            revertButton.addActionListener(new BouttonRevertListener());
         }
     
         class BouttonRevertListener implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent e) {
                if(box.getSelectedItem().equals("€")){
                    box.setSelectedItem("$");
                }
                if(box.getSelectedItem().equals("$")){
                    box.setSelectedItem("€");
                }
            }
        }
    }
    Merci d'avance pour vos futurs réponses, je n'ai pas trouvé utile de poster le code tout entier, mais si vous pensez cela utile n'hésitez pas à me le demander.

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 325
    Points : 436
    Points
    436
    Par défaut
    C'est assez étrange en effet. D'autant que si vous sortez le code box.setSelectedItem en dessous des deux if tout fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                String newSelection = null;
                if (EURO.equals(box.getSelectedItem())) {
                    newSelection = DOLLAR;
                }
                if (DOLLAR.equals(box.getSelectedItem())) {
                    newSelection = EURO;
                }
                box.setSelectedItem(newSelection);

  3. #3
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 325
    Points : 436
    Points
    436
    Par défaut
    En fait non, c'est tout bête.

    Etant donné que dans le premier if on sélectionne "$", le second if est exécute et on sélectionne "€". Il faut donc utiliser else if ou le code de ma réponse précédente.

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

Discussions similaires

  1. [RegEx] Testeur de regex qui ne fonctionne qu'à moitié
    Par charles_coiffier dans le forum Langage
    Réponses: 1
    Dernier message: 10/09/2008, 20h46
  2. Ma méthode ajouter ne fonctionne pas
    Par beegees dans le forum C++
    Réponses: 6
    Dernier message: 14/05/2008, 15h50
  3. méthode OfType() ne fonctionne pas
    Par maa dans le forum C#
    Réponses: 7
    Dernier message: 21/01/2008, 09h12
  4. [Conception] INSERT fonctionne a moitié, UPDATE Fonctionne, comprends pas?
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 06/09/2006, 17h22
  5. gestionnaire fonctionnant à moitié
    Par Pallas4 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 02/05/2006, 18h23

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