Java - JOptionPane qui s'incrémente
filou156
Messages postés
18
Statut
Membre
-
filou156 Messages postés 18 Statut Membre -
filou156 Messages postés 18 Statut Membre -
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();
}
}
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:
- Java - JOptionPane qui s'incrémente
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
4 réponses
Salut,
en fait lorsque tu fais :
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 :
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.
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.