Puis-je utiliser un Java JOptionPane dans un non-modale?
Je suis en train de travailler sur une application qui affiche un JOptionPane quand une action se produit. Je me demandais juste s'il était possible que lorsque le JOptionPane ne pop-up, comment pouvez-vous utiliser encore les applications en arrière-plan. Actuellement, lorsque le JOptionPane pop-up je ne peux rien faire d'autre jusqu'à ce que je ferme le JOptionPane.
MODIFIER
Merci pour la réponse les gars et les informations. Pensez malade pour sortir de cette fonction de l'application de cause, il semble comme il pourrait être plus de tracas que nécessaire.
OriginalL'auteur yemyem | 2011-04-18
Vous devez vous connecter pour publier un commentaire.
La documentation stipule explicitement que tous les dialogues sont modal lors de la création par le biais de la showXXXDialog méthodes.
Ce que vous pouvez utiliser est l'Utilisation Directe de la méthode de prise de la documentation et de la setModal méthode qui JDialog hérite de la boîte de Dialogue:
dialog.show()
ne fait pas ce que vous attendez. Il fait juste de la boîte de dialogue visible. Cette méthode sera de retour avant que l'utilisateur a cliqué sur "OK". En revanche, vous pouvez ajouter unActionListener
pour l'informer de l'application lorsque l'utilisateur choisit une option.J'ai exactement ce problème. Comment pouvez-vous attendre de retour jusqu'à ce que l'utilisateur clique sur OK dans un non modale boîte de dialogue?
si c'est non modale, alors vous ne l'attendez pas, vous créez des écouteurs d'événement pour la place. Si vous voulez attendre pour cela, alors il devrait être modal
OriginalL'auteur justkt
Vous devriez être en mesure d'obtenir plus d'informations ici: http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html
JOptionPane
est une classe utilitaire pour pop-up pré-fabriqué des boîtes de dialogue à l'aide de simples appels à des méthodes statiques. Je ne pense pas qu'il permet une grande marge de manoeuvre pour le bricolage à la modalité.oui, c'est fait.
JOptionPane
s'étendJPanel
. Il peut être créé de façon indépendante de la boîte de dialogue et d'avoir sa propreActionListener
. Vous pouvez créer votre propre boîte de dialogue avec quelle que soit la modalité que vous voulez et ajouter leJOptionPane
comme un enfant.Woo hoo! Merci pour la correction moi, je ne savais pas cela. Il y a toujours encore une autre chose à découvrir dans la Bibliothèque Java.
OriginalL'auteur yavoh
Au sein de votre application Java, je pense que vous êtes hors de la chance: je n'ai pas vérifié, mais je pense que JOptionPane de showXXXDialog méthodes pop up un soi-disant dialogue modale ce qui maintient le reste de l'interface graphique à partir de la même JVM inactif.
Cependant, Java n'a pas de tout premier plan-l'accaparement des super-pouvoirs: Vous devriez toujours être en mesure de Alt-Tab pour d'autres (non Java) des applications.
OriginalL'auteur Carl Smotricz
Facile, ce tweak a fonctionné pour moi (1.6+). Remplacé le showXXXDialog avec quatre lignes de code:
(1) créer un objet JOptionPane
(2) l'appel de son createDialog() méthode pour obtenir un JDialog objet
(3) définir la modalité de type de la JDialog objet non modal
(4) définir la visibilité de la JDialog de vrai.
OriginalL'auteur Pete Sanderson