IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Fermeture d'une fenêtre en cours d'execution


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Tsukaasa
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Par défaut Fermeture d'une fenêtre en cours d'execution
    Bonjour,

    Alors voila mon problème, je cherche à fermer la fenêtre principale de mon application en cliquant sur la croix de la fenêtre, tout cela pendant que l'application exécute son traitement, mais le clic sur la croix est ineffectif.

    En gros, si j'ai une application qui compte de 1 à 9999999 en incrémentant d'une valeur le '1', j'aimerais qu'en cliquant sur le croix de la fenêtre, l'application se termine et que je puisse récupérer le nombre calculé via l'évènement 'windowClosing'.

    Auriez-vous des pistes?

    Par avance merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Donne ton code, on verra comment le modifier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé Avatar de Tsukaasa
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Par défaut
    C'est pas le code qui pose problème, avec n'importe qu'elle application ayant une fenêtre graphique qui fait un traitement j'ai le même soucis.

    J'aimerais juste stopper une application en cours d'exécution en cliquant sur la croix de la fenêtre, et d'exécuter des instructions via la méthode 'windowClosing'.

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    si j'ai une application qui compte de 1 à 9999999 en incrémentant d'une valeur le '1', j'aimerais qu'en cliquant sur le croix de la fenêtre,
    il faudra donner le temps au programme de voir s'il y a eu des événements, donc un petit Thread.sleep(tempsMillisec) dans la boucle fera l'affaire je crois

  5. #5
    Membre confirmé Avatar de Tsukaasa
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Par défaut
    J'ai mis un temps de pause d'une seconde avant chaque incrémentation, mais cela ne marche toujours pas, je vous poste le code on ne sais jamais.

    Je ne met que les parties intéressantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    class BoutonListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent click) 
    		{
    			String boutonClique = click.getActionCommand();
     
    			if(boutonClique.equals("Ok"))
    			{            
    				for(long l=0; l<99999999999999999L;l++)
    				{
    					sleep(1000);
    					compteur++;
    					jta.setText(compteur+"");
    				}
    			}
     
     
    		}
    	}
     
    	public void sleep(int temps)
        {
            try
            {
                Thread.sleep(temps);
            }
            catch(InterruptedException e)
            {
                e.printStackTrace();
            }
        }
     
    public void windowClosing(WindowEvent evt)
            {
     
        		JOptionPane.showMessageDialog(null, "Fermeture fenêtre", "Information", 1);
                System.out.println("Window closing");
                System.exit(0);
            }

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    je crois qu'il faudrait exécuter la boucle en arrière plan en utilisant SwingWorker

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    btn.addActionListener(new ActionListener(){
    	public void actionPerformed(ActionEvent ae) {
    		SwingWorker worker = new SwingWorker<Void, Void>() {
    			@Override
    			public Void doInBackground() {	
    				long compteur = 0;							
    				for(long l=0; l<99999999999999999L;l++)
    				{
    					compteur++;
    					System.out.print(compteur+" ");
    					try{
    						Thread.sleep(100);
    					} catch (Exception e) {}
    				}
    				return null;
    			}
    		};
    		worker.execute();
    	}
    });
    je n'ai pas trop utilisé SwingWorker, donc je ne sais pas si j'ai fait une bêtise,

    http://rom.developpez.com//java-swingworker/
    http://java.sun.com/docs/books/tutor...cy/worker.html

Discussions similaires

  1. Exécuter une action à la fermeture d'une fenêtre
    Par wwave dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 28/07/2005, 15h15
  2. Fermeture d'une fenêtre .dos
    Par VirginieGE dans le forum Windows
    Réponses: 2
    Dernier message: 03/06/2005, 13h56
  3. executer une fonction à la fermeture d'une fenêtre
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 09h46
  4. Arrêter un ttmt en cours, lors de la fermeture d'une fenêtre
    Par teska dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/12/2004, 14h08
  5. Compacter une appli en cours d'execution.
    Par valentin4949 dans le forum Access
    Réponses: 4
    Dernier message: 26/11/2004, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo