Fermeture avec le "x" marche pas..kelkun peut aider?
afura2004
Messages postés15Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention21 avril 2004
-
2 avril 2004 à 16:09
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 2012
-
9 avril 2004 à 20:31
Salut,
J'ai un petit problème avec la fermeture de ma fenêtre en cliquant sur le "X" situé en haut à droite de ma fenêtre. Le problème se figure qu'à chaque fois que je clique dessus, il me demande une confirmation et même si je choisi non, la fenêtre se ferme pareil. Voici le code que j'ai écris pour ça :
public class Bureau extends JFrame {
public Bureau()
{
setSize( 800, 700 );
setVisible( true );
this.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int reponse = JOptionPane.showConfirmDialog(null, "Voulez-Vous quitter le logiciel ?",
"Fermeture du logiciel", JOptionPane.YES_NO_OPTION);
System.out.println(reponse);
if (reponse == JOptionPane.NO_OPTION) Bureau.this.windowClosed();
}
}
); //fin du AddWindowListener
}
On dirait qu'il ne rentre même pas dans le if, la fenêtre se ferme même si je choisi l'option non. Svp de l'aide! Merci à tous!! Bye!
afura2004
Messages postés15Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention21 avril 2004 2 avril 2004 à 16:15
Salut,
J'ai remarqué que j'ai fait une petite erreur dans mon code, c'est dans la boucle if.. J'ai inversé la condition, alors j'ai changé ma conditon pour :
if (reponse == JOptionPane.YES_OPTION)Bureau.this.windowClosed();
J'ai changé cette condition et cela ne fonctionne toujours pas...la fenêtre se ferme même si je dis non à la confirmation qu'il me demande. Svp de l'aide!! Merci! Bye
afura2004
Messages postés15Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention21 avril 2004 2 avril 2004 à 17:07
Salut,
Hmmm..ca fonctionne pas ton code parce que ma "reponse" c un integer et non un String..alors ca me saute des erreurs de types et d'execption..regardre bien le code encore une fois :
public class Bureau extends JFrame {
public Bureau()
{
setSize( 800, 700 );
setVisible( true );
this.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int reponse = JOptionPane.showConfirmDialog(null, "Voulez-Vous quitter le logiciel ?", "Fermeture du logiciel", JOptionPane.YES_NO_OPTION);
if (reponse == JOptionPane.YES_OPTION) Bureau.this.windowClosed();
}
}
); //fin du AddWindowListener
protected void windowClosed() { System.exit(0); }
}
Comme tu peux le voir, c'est "int reponse =..." Svp de l'aide encore! Merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 2 avril 2004 à 18:15
Salut,
il faut changer l'opération par défaut sur la fermeture. Par défaut quand on clique sur la croix la frame disparait mais l'appli tourne toujours.
Sur ta frame tu fais
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 2 avril 2004 à 18:28
GodConan :clown)
pour HFanny ce n est pas la methode equals qui ser a comparer 2 chaine de caractere ;o) mai la mathode compareTo( String s )... ;o)
equals etant une methode d Object et fonctionnant legerement diferement ;o)
autrement pour la question qui nous interresse ;o) ton code semble bon ;o)
il te faut juste rajouter une proprieter a ta frenetre :
setDefaultCloseOperation(javax.swing.JFrame.DO_NOTHING_ON_CLOSE);
et voila ....
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 5 avril 2004 à 10:21
:big) Neodante :big)
Juste pour GodConan, la méthode equals sert bien à comparer 2 chaine de caractères ... en renvoyant un booléen -> comparaison caractère à caractère !
La fonction compareTo est un peu plus poussé car elle cherche une comparaison lexicographi...chose ce qui donne comme pour la fonction strcmp() du C un int -x/0/x selon que le mot est classé avant ou après dans un dico donc on ne s'en sert pas pour les mêmes choses ... ou 0 si égal !
Mais cela revient quasiment au même ... j'utilise equals pour savoir si 2 chaines sont identiques ... et l'autre pour le tri ... m'enfin vu les algo de comparaison .. y a pas franchement d'avantages m'enfin j'aurais toujours tendance à les utiliser de ma manière ! lol
@+ everybody !
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 6 avril 2004 à 09:26
:big) Neodante :big)
M'enfin c'est juste que les 2 méthodes ne servent pas tout à fait à la même chose même si on peut les faire parler pour quelles disent la même chose ! lol
@++
safisoft
Messages postés489Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention13 mai 20096 9 avril 2004 à 12:01
Je X que ca serait plus facile d'implementer WindowListener, declarer ses differentes abstract classes vides, et mettre dans windowClosed et windowClosing System.exit(0);
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 9 avril 2004 à 19:53
:big) Neodante :big)
Moi je suis plutôt comme satisoft ... m'enfin ça tout le monde s'en fout !!! lol
Sérieusement je pense que mettre les méthodes vides permettent d'appréhender l'avenir de l'application, même si c'est pas long à remettre si y a besoin ...
M'enfin DefaultHandler c'est comme même bien ! lol
@+
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 9 avril 2004 à 20:08
GodConan :clown)
ouai si on veu mais ds tou les cas ds se cas faut as use l implementation direct mais plutot une class interne c bcp plus facil pour s y retrouver ;o) mais n empeche que les adatpter c qd meme mieu que les listner... ;o) héhé
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 9 avril 2004 à 20:26
:big) Neodante :big)
Le résultat est le même ... m'enfin ces interfaces là on été fait pour écrire juste les lignes de code nécessaire, ce qui n'est pas plus mal pour du dev rapide ... ce qui aujourd'hui est le cas de 100% des projets info ! A moins que certains boss vous laisse le temps de développer en paix ... perso le mien c'est pas le cas !!! Et vous ??? lol
@+