Conflit entre deux fenetres identiques

bertrandbasch Messages postés 22 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 12 août 2004 - 12 mai 2003 à 21:40
skro90 Messages postés 8 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2003 - 13 mai 2003 à 00:00
En fait j'ai un problème avec une des fenetres de mon application. Lorsque je crée la fenetre à partir de la fenetre principale la première fois, tout se passe bien. Ensuite je retourne sur ma fenetre principale. Par après quand je créée à nouveau ma fenetre secondaire, toutes les actions engendrées par un bouton se font deux fois... et ainsi de suite.
Est ce à cause d'une mauvaise destruction lors de la première utilisation?
Comment puis je remédier à ce problème?

Merci d'avance

2 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
12 mai 2003 à 22:05
si tu fait seulement : "new Frame" quand tu vas fermer la fenêtre la frame vas disparaitre. Sauf attention, ça peut créer plusieurs fois la même fenêtre.

l'idéal est d'utiliser un JDialog qui permet de mettre la fenêtre modal, donc impossible de cliquer sur la fenêtre maitre quand la fenêtre secondaire est ouverte
0
skro90 Messages postés 8 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2003
13 mai 2003 à 00:00
Oui, une JDialog modal, c'est pas mal .
Pour ce qui est de ta fenetre, quand tu la ferme, tu lui
applique bien un this.dispose() ?
car sinon, si tu clic sur la croix, ca ne fait que la caché, mais pas fermé...
le mieux serai de faire dans le contruteur de la fenetre principale :

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

puis d'implementé un windowListener a la fenetre secondaire :
this.addWindowsListener(this);

( ne pas oublier : " implements windowListener " derriere Class fen extends JFrame )

et dans : public void windowClosing(WindowEvent e)

public void windowClosing(WindowEvent e)
{
this.dispose();
}

ne pas oublier aussi les autre methode pour les windowListener :

public void windowActivated(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}

meme si celle ci reste vide ...

..:: Skro90 ::..
0
Rejoignez-nous