Fermeture d'un popup JOptionPane
Résolu
squeezen123
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
zefoots Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
zefoots Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
hello !!
Dans le cadre d'un projet Socket Programming, j'ai créé une fenêtre popup type JOptionPane.
Le problème c'est que j'ai mis un timeout pour faire disparaitre la fenetre après un certain temps et que j'arrive pas
à la fermer ?!!? j'ai essayé this.setVisible(false) ou encore a supprimer l'objet rien n'y fait....
C'est la toute dermière partie de mon projet que j'aimerais implémenter (il doit etre rendu mardi matin prochaine : le 26 !!! )
Donc si qqun peut m'aider. Voila une partie du code :
JOptionPane jOption=new JOptionPane();
// On commence le timer pour killer le callThread au bout de 18sec: avant le timeout de l'autre
timerQuestionCall=new Timer();
timerQuestionCall.schedule(new CallQuestionTask(this,p2PManager,jOption),
18*1000, //initial delay
18*1000); //subsequent rate
System.err.println("TIMER LANCEEEE depuis " + requestSplited[3] + " pour le thread " + this.peer.buddyName);
int callReceive = jOption.showConfirmDialog(null, "Call received :\n"+ requestSplited[3]+"\n" + "IP: " +requestSplited[4] + " / Port: "+ requestSplited[5]+ "\n\nWould you like to answer to this call ?", "Incomming call", JOptionPane.YES_NO_OPTION);
merci
Dans le cadre d'un projet Socket Programming, j'ai créé une fenêtre popup type JOptionPane.
Le problème c'est que j'ai mis un timeout pour faire disparaitre la fenetre après un certain temps et que j'arrive pas
à la fermer ?!!? j'ai essayé this.setVisible(false) ou encore a supprimer l'objet rien n'y fait....
C'est la toute dermière partie de mon projet que j'aimerais implémenter (il doit etre rendu mardi matin prochaine : le 26 !!! )
Donc si qqun peut m'aider. Voila une partie du code :
JOptionPane jOption=new JOptionPane();
// On commence le timer pour killer le callThread au bout de 18sec: avant le timeout de l'autre
timerQuestionCall=new Timer();
timerQuestionCall.schedule(new CallQuestionTask(this,p2PManager,jOption),
18*1000, //initial delay
18*1000); //subsequent rate
System.err.println("TIMER LANCEEEE depuis " + requestSplited[3] + " pour le thread " + this.peer.buddyName);
int callReceive = jOption.showConfirmDialog(null, "Call received :\n"+ requestSplited[3]+"\n" + "IP: " +requestSplited[4] + " / Port: "+ requestSplited[5]+ "\n\nWould you like to answer to this call ?", "Incomming call", JOptionPane.YES_NO_OPTION);
merci
A voir également:
- Fermeture d'un popup JOptionPane
- Sytadin fermeture - Télécharger - Transports & Cartes
- Forcer la fermeture d'un programme - Guide
- Fake mcafee popup - Accueil - Piratage
- Annuler fermeture onglet chrome - Guide
- Frais de fermeture compte paypal - Guide
3 réponses
A priori, d'après ce que tu écris, j'en déduis que tu programmes en java ...
Les JOptionPane sont des boîtes modales. Donc à partir du moment où tu invoques la méthode showConfirmDialog(), les événements de ton Timer ne te parviennent plus car ils sont arrêtés par la boîte JOptionPane (c'est à ça que ça sert les boîtes modales)
Je te suggère d'implémenter toi-même une classe qui hérite de JOptionPane et de mettre ton Timer dedans et non dans une classe externe. A ce moment là, les événements du Timer te parviendront.
Les JOptionPane sont des boîtes modales. Donc à partir du moment où tu invoques la méthode showConfirmDialog(), les événements de ton Timer ne te parviennent plus car ils sont arrêtés par la boîte JOptionPane (c'est à ça que ça sert les boîtes modales)
Je te suggère d'implémenter toi-même une classe qui hérite de JOptionPane et de mettre ton Timer dedans et non dans une classe externe. A ce moment là, les événements du Timer te parviendront.