bonjour
comment rendre une fenetre modale c'est à dire (on ne peut pas basculer à une autre fenetre tantque la fenetre active est ouverte MERCI)
bonjour
comment rendre une fenetre modale c'est à dire (on ne peut pas basculer à une autre fenetre tantque la fenetre active est ouverte MERCI)
j'utilse un JFrame pas un JDialog
comme faire avec JFrame ?![]()
merci pour l'info sur le JDialog![]()
Utilise un JDialog...Envoyé par inter_amine
JFrame n'est pas prévu pour ça.
Si tu veux absolument une JFrame, et que ton but c'est de bloquer toutes les autres applications graphiques, je crois que setAlwaysOnTop(boolean alwaysOnTop) pourrais être ce que tu veux. Je ne l'ai jamais utiliser donc je ne suis sur de rien...
Oublie ça. C'est simplement pour avoir une fenêtre toujours en avant plan. Ca ne bloque absolument rien si ce n'est "mécaniquement" car on se sent bloqué quand on a une fenêtre devant.Envoyé par Janitrix
Si on veut absolument rendre une JFrame modale (ce dont je ne vois absolument pas l'intérêt), suffit de faire une petite recherche sur Google, j'suis sûr qu'on trouve des implémentations de ce comportement. Je me demande même si je n'ai pas vu ça dans une API connue (pour avoir les boutons minimizer et maximizer qui sont absents dans un JDialog). Mais je ne saurais plus dire quelle librairie.
Je n'étais pas vraiment sur du comportement de cette méthode. merci de m'avoir éclairé.
ou alors tu peux shunter le problème en forçant le focus sur ta JFrame
Bonjour,
De mon côté j'utilise bien un jDialog... enfin, une extension d'un jDialog
et je crée cette fenêtre de cette façon depuis ma fenêtre principale (une applet):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class UploadInformation extends JDialog public UploadInformation() { this.setModal(true); ... }
Le JDialog se crée bien en modal, mais si j'ouvre une autre fenêtre par dessus (Word, explorateur...) et que je clique ensuite dans la barre des tâches sur mon Applet, je vois la fenêtre principale de l'Applet (que je ne peux pas activer puisque la fenêtre modale est ouverte) mais pas ma JDialog. Il faut que j'utilise Alt-Tab pour récupérer la JDialog...
Code : Sélectionner tout - Visualiser dans une fenêtre à part UploadInformation ui = new UploadInformation();
Quelqu'un aurait il des infos?![]()
Il faut donner un parent à ton JDialog, en général la JFrame qui l'ouvre.Envoyé par Ghislain
Merci pour cette piste... et là, c'est le drame!!! En effet, étant donné que c'est une applet, il n'y a pas de JFrame mais un JContentPane et c'est lui qu'il faudrait passer comme parent, je pense.
Et forcément, ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class UploadInformation extends JDialog public UploadInformation(JContentPane contentPane) { super(contentPane); this.setModal(true); ... }
J'ai donc essayé de creuser en me basant sur ça: http://forum.java.sun.com/thread.jsp...sageID=3391015
et du coup, j'obtiens le résultat suivant:
et ça fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class UploadInformation extends JDialog public UploadInformation(JContentPane contentPane) { super(JOptionPane.getFrameForComponent(contentPane)); this.setModal(true); ... }![]()
Encore merci pour vos pistes et votre aide.
Oui désolé, j'ai pas pensé te dire d'utiliser JOptionPane#getFrameForComponent..., c'est ce que je fais systématiquement (sinon ça centre par défaut ton dialogue par rapport à composant et pas par rapport à la frame qui contient ce composant).
Sinon, pour info, tu peux spécifier que c'est modal dans le constructeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class UploadInformation extends JDialog public UploadInformation(JContentPane contentPane) { super(JOptionPane.getFrameForComponent(contentPane), true); ... }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager