Comment remplacer windowsClosing événement dans JFrame
je suis l'élaboration d'une JFrame qui a un bouton pour afficher une autre JFrame. Sur la deuxième JFrame je veux remplacer WindowsClosing événement pour cacher cette image, mais pas de fermer toutes les applications. Donc, je fais comme ceci:
Sur la deuxième JFrame
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
private void formWindowClosing(java.awt.event.WindowEvent evt) {
this.dispose();
}
mais demande encore près lorsque je clique sur x
sur le bouton windows. pourquoi? pouvez-vous m'aider?
Je ne peux pas utiliser
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
parce que j'ai besoin de montrer à nouveau que JFrame avec de l'information supplémentaire pendant les opérations de première JFrame. J'ai donc init deuxième JFrame avec l'attribut visible false
. si j'utilise jetez-je perdre les informations ajoutées dans un deuxième temps, par l'autre JFrame. j'ai donc utiliser
private void formWindowClosing(java.awt.event.WindowEvent evt) {
this.setVisible(false);
}
mais il continue toujours à mettre fin à l'ensemble de mon application.
OriginalL'auteur JackTurky | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Ajout d'un Nouveau Code sans WindowListener partie, comme expliqué par @JBNizet, la très bonne chose. Le comportement par défaut vient se cache la fenêtre, rien n'est perdu, il vous suffit de le ramener, chaque valeur à l'intérieur, il restera comme il est, ci-dessous, l'exemple de programme pour obtenir de l'aide :
Est-ce que vous voulez, essayez ce code :
c'est ce dont j'ai besoin!!!! Cacher sur fermer... 😛 merci beaucoup!!!! 😀
Votre Accueil et de Garder le Sourire 🙂
toujours!!!!!!!! 😛
Wowo, je ne savait pas à propos de ces stats, Beaucoup de gens avec de vastes connaissances sont leurs comme vous 🙂
OriginalL'auteur nIcE cOw
ne pas créer un nouveau
JFrame
, pour une nouvelle utilisation des conteneursJDialog
, si vous souhaitez masquer leJFrame
alors il vaut mieux serait de remplacer approprié.gDefaultCloseOperations(JFrame.HIDE_ON_CLOSE)
, méthodeJFrame.EXIT_ON_CLOSE
teminating courant de la JVM instance simlair comme calll pourSystem.exit(int)
MODIFIER
1), alors il doit y avoir un autre problème, votre code peut-être appeler un autre
JFrame
ouformWindowClosing
<>WindowClosing
, utiliser la méthode mise en œuvre de l'API2) j'ai b'préféré
DefaultCloseOperations(JFrame.HIDE_ON_CLOSE)
,3) utilisation
JDialog
au lieu deJFrame
veuillez voir mon edit
désolé.. je crois que je n'ai pas d'expliquer bon ma question... je ne veux pas créer une boîte de dialogue dans laquelle l'utilisateur peut fermer la fenêtre ou pas. mais je ne veux le cacher. comme un bouton dans laquelle j'ai mis cette.setVisible(false)
+1 pour l'effort 😛
Je pense sérieusement avec le JDialog 🙂 JFrames peut prendre parent, cann pas être déplacé toFront/Retour (depuis la mise en œuvre de l'API, simple doean fonctionne pas), vous avez problème avec l'Icône de l' ....
OriginalL'auteur mKorbel
Vous pouvez éviter l'auditeur complètement et utilisez
Notez que la valeur par défaut est HIDE_ON_CLOSE, de sorte que le comportement que vous voulez que devrait être le comportement par défaut. Peut-être que vous avez enregistré un autre auditeur qui quitte l'application.
Voir http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setDefaultCloseOperation%28int%29
La valeur par défaut opération de fermeture est exactement ce que votre écouteur: il cache le cadre. Je ne vois pas pourquoi tu pourrais pas réutiliser ce cadre après la.
Souhaite que je pourrais upvote cette réponse, deux fois ou plus, il semble que ce que tu voulais expliquer, OP ne pouvais pas le comprendre, mais je viens de réaliser, exactement ce que vous lui racontez. Il n'est pas nécessaire pour le
WindowListener
partie. Je n'ai jamais lu sur le comportement par défaut de laJframe
mais que le doc visée par vous, m'a éclairé 🙂OriginalL'auteur JB Nizet
Il est difficile de déterminer exactement pourquoi vous rencontrez le comportement déclaré sans voir un peu plus de code, mais il peut être dû à defaultCloseOperation ensemble de EXIT_ON_CLOSE.
Voici un lien vers une démo de l'affichage des propriétés que vous recherchez bien que la structure est un peu différente. Regardez: http://docs.oracle.com/javase/tutorial/uiswing/examples/components/FrameworkProject/src/components/Framework.java
OriginalL'auteur Michael