Boîte de dialogue (JDialog) modale

wenders77 Messages postés 7 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mai 2005 - 2 mars 2005 à 17:00
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 2 mars 2005 à 17:48
Bonjour à tous,

Je suis en train de reprendre un projet assez conséquent et dont l'architecture n'est pas sans poser quelques petits problèmes. En particulier, je n'arrive pas à "accrocher" mes boîtes de dialogue à l'espace de travail auquel elles se réfèrent.

Cet espace de travail est une classe MonPanel que l'on appelle ainsi:
travail = new MonPanel(monCadre);
où monCadre est un JFrame.

Le problème, c'est que que je créé ma boîte de dialogue ainsi:
JDialog (Frame owner, String title, boolean modal)
et que je suis obligé de caster ma JFrame en Frame - si je m'exprime correctement.

Le résultat, c'est que la boîte de dialogue n'est pas modale; en tout cas, elle n'est pas "attachée" à mon espace de travail ou au cadre que j'ai défini dedans. Alors, comment faire pour qu'il n'en soit pas ainsi?

PS: et je n'ai également pas su comment insérer du code proprement dans mon message...

<HR>
class MonPanel extends JPanel {

private Frame cadre;
...
MonPanel() {
super();
...
}

MonPanel(Frame cadre) {
this();
this.cadre = cadre;
...
}

1 réponse

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
2 mars 2005 à 17:48
Slut
en fait, le paramétre "Frame owner" du constructeur du JDialog correspond à la fenêtre parente de ton JDialog (la fenêtre où est appelé ton JDialog). Cela sert à la modalité : on n'empêche l'accés de la fenêtre parente si on précise qu'on est en modalité. Or dans ton cas, tu ne précises pas vraiment quelle est la fenêtre parente. De ce fait, ton JDialog reste modale.

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Rejoignez-nous