cs_Dobel
Messages postés
333
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
23 novembre 2009
1
17 mai 2005 à 22:35
Il y a peut-être une solution en mettant un WindowListener (ou autre)
sur la fenêtre mère, et en demandant de repasser le JDialog devant avec
sa méthode toFront();
mais bon, c'est surtout pour rapeller que le problème n'est pas trivial, car il dépend du Window-Manager de l'OS...
le comportement ne sera certainement pas le même sous Windows, sous
Solaris, ou sous Linux avec Gnome, KDE ou Fluxbox ou.........
il me semble d'ailleurs qu'il y a des avertissements dans la doc java,
pour prévenir que les comportements des méthodes toFront ou autres sont
incertains.
Pour ce qui est de la source que tu cites au dessus, je pense qu'il
sagit d'une méthode à mettre dans la classe JDialog, pour faire
apparaître une boîte de dialogue (enfin, j'essaye de deviner )
j'ai aucune idée de si ça marche :p, et si ça marche, je ne vois pas du tout pourquoi
en gros (je tape en live) :
class Message extends JDialog {
public Message (Frame frame, String titre) {
super(frame, titre, true); //pour la créer modale
}
public static void afficherMessage(Component parent, String titre, String message) {
Component frame = parent;
while (frame !=null && !(frame instanceof Frame) )
frame = frame.getParent (); //on remonte les parents, jusqu'à trouver une Frame
//on créé une boîte de cette classe Message
Message boite = new Message(frame, titre);
//on peut continuer la boîte ici, rajouter des boutons, afficher la String message, etc...
//...................
//dans le code que tu cites, il termine par ça, mais je ne sais pas si c'est nécessaire
boite.setResizable(false);
boite.pack();
boite.show();
}
}
et donc, tu utilises plus loin en faisant par exemple
Message.afficherMessage(this, "Bibi was here", "Hello World !");
voilà, j'espère juste ne pas avoir écrit des grosses co*****es
Dobel
[Une fois rien, c'est rien; deux fois rien,
ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà
s'acheter quelque chose, et pour pas cher]