JDialog bouton annuler
Comment puis-je mettre un bouton annuler dans un Swing JDialog
, c'est à dire un bouton dont l'action est effectuée automatiquement si l'utilisateur appuie sur la touche “Annuler” sur le clavier?
La contrepartie est offert pour une action par défaut via le setDefaultButton
méthode de la boîte de dialogue de la racine du volet.
Si c'est aider, je suis à la recherche d'une manière analogue à la WinForms Form.CancelButton
propriété.
Suppose que tu veux dire échapper à la clé..
OriginalL'auteur Konrad Rudolph | 2009-08-16
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que ce soit possible avec JDialog sans l'étendre.
Vous pouvez utiliser JOptionPane.showOptionDialog() (ou éventuellement de l'une des autres méthodes), en passant de la JButtons vous voulez être utilisés.
Si les options passées sont les composants, ils vont être rendus que la normale, de sorte que vous pouvez faire quelque chose comme ceci:
Je pense que vous avez raison, si vous avez un dialogue personnalisé, vous aurez besoin de mettre en œuvre le traitement vous-même, vous pouvez cependant rip off de la transformation de JOptionPane. FWIW en SWT vous pouvez définir un arbitraire sous-classe de boîte de Dialogue et appeler sa méthode open() pour l'afficher
OriginalL'auteur Rich Seller
La meilleure façon que je peux voir, c'est pour ajouter un
Action
à l'action de la carte de la racine volet, et le lien que l'action de la touche d'échappement à l'aide de la racine du volet d'entrée de la carte.Pour cela, vous avez besoin d'un
Action
. Si votre bouton annuler son comportement est mis en œuvre comme une action (ie.cancelButton.getAction() != null
), puis ce sera le travail:Sinon, si le bouton annuler est la logique est mise en œuvre par le biais d'un
ActionListener
, vous pourriez avoir laactionPerformed()
méthode de laActionListener
appeler unprivate void onCancel()
méthode qui implémente la logique, et l'enregistrement d'une "annuler" action qui appelle la même méthode.OriginalL'auteur Jesse
Ligne unique solution
où t est un des composants(à l'exception JButton) comme component swing jtextfield dans la boîte de dialogue.
put()
méthode est un élément clé dans l'action, carte, pas unAction
. Cela ne fonctionne que sibtnCancel.getAction() != null
, et si leAction
retourné parbtnCancel.getAction()
a été inscrit dans l'action de la carte pourt
avec le principal, c'est à dire. sit.getActionMap().put(btnCancel.getAction(), btnCancel.getAction())
avait déjà été appelé.OriginalL'auteur Prabu
Tout ce que vous avez à faire est de joindre à l'action de l'auditeur pour le bouton d'appel et
dialog.setVisible(false)
à l'intérieur d'elle.Vous ne répondez pas à la question. Il était sur le point de rejeter une boîte de dialogue en appuyant sur une touche, en général avec la touche d'Échappement. Au moins c'est comment j'ai lu la question, qui est un peu ambigu sur la re-lecture.
Oups, merci pour cette remarque. La question devrait se lire “ "annuler" clé”, pas de “bouton”. Je vais corriger ça.
OriginalL'auteur Eugene Ryzhikov