Java - JOptionPane qui s'incrémente

Fermé
filou156 Messages postés 14 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 19 juin 2011 - 9 févr. 2010 à 04:44
filou156 Messages postés 14 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 19 juin 2011 - 24 févr. 2010 à 23:41
Bonjour,

Je vous donne le contexte. On a d'abord une JFrame principale qui contient un JButton. Lorsqu'on clique sur ce dernier, un JDialog s'ouvre. Dans cette nouvelle fenêtre (JDialog), on retrouve un bouton qui une fois cliqué, nous envoie une JOptionPane de confirmation.

Maintenant, le problème. Si on ferme la JDialog et qu'on l'ouvre à nouveau (toujours grâce au premier JButton), et qu'on clique sur le deuxième, la JOptionPane de confirmation apparaît deux fois. Et cela augmente chaque fois on ferme et on ouvre la JDialog.

Voici une partie du code :

fen2 est la JDialog

public static void dialogQuestion(){

JOptionPane.showConfirmDialog(null, "Confirmez ?", "Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

}


public static void Fenetre2(){
fen2.setTitle("App");
fen2.setSize(400 , 500);
fen2.setResizable(false);
fen2.setLocationRelativeTo(null);
fermer_fenetre.addActionListener(new BoutonFermer());
vider_fichier.addActionListener(new BoutonDialog());
fen2.setVisible(true);


}

static class BoutonDialog implements ActionListener{
public void actionPerformed(ActionEvent e) {
dialogQuestion();



}


}
A voir également:

4 réponses

latoopa Messages postés 258 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 5 janvier 2012 32
9 févr. 2010 à 08:53
Salut,

en fait lorsque tu fais :

fermer_fenetre.addActionListener(new BoutonFermer()); 


tu scrutes les actions sur ton bouton fermer fenêtre mais sur un nouveau bouton "new BoutonFermer()". Je crois qu'en général, ActionListener prend "this" en paramètre. Ta classe doit pour cela implémenter ActionListener.


Deuxième point :

static class BoutonDialog implements ActionListener{ 
    public void actionPerformed(ActionEvent e) { 
          dialogQuestion(); 
    } 
}


De plus, dans ton actionListener, tu ne fais pas la distinction du bouton qui est cliqué.. Il faudrait probablement utiliser "e.getSource()" pour savoir quel bouton a été selectionné à l'aide d'ifs.
1
filou156 Messages postés 14 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 19 juin 2011 2
10 févr. 2010 à 23:10
Peut-être bien mais ça ne règle pas mon problème de JOptionPane.
0
latoopa Messages postés 258 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 5 janvier 2012 32
11 févr. 2010 à 14:40
Moi je pense que si... :-)

Cordialement.
Toopa
0
filou156 Messages postés 14 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 19 juin 2011 2
24 févr. 2010 à 23:41
Désolé,

Merci à toi Latoopa, tu avais raison.
0