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

  1. #1
    Futur Membre du Club
    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
    Nouveau membre du Club
    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
    Nouveau membre du Club
    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.

###raw>template_hook.ano_emploi###