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 :

Problème pour fermer un for


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème pour fermer un for
    Bonjour,

    Je dois réaliser un simulateur de feu d'artifice en Java et je suis tombé sur un problème dont je ne trouve pas de solution.

    Je dois pouvoir arrêter la simulation après l'avoir démarré et je ne vois pas comment faire car ma simulation fonctionne de la manière suivante :
    - Je clique sur un bouton qui lance la simulation.
    - Ce bouton lance une fonction.
    - Cette fonction va actualiser un canvas à l'aide d'une boucle for et d'un thread.

    Donc le problème, c'est qu'au moment où je clique sur le bouton "Lancer Simulation", je n'ai pas d’accessibilité sur mon programme avant la fin de la boucle for qui actualise mon canvas, donc je ne peux pas me servir d'un autre bouton pour arrêter la simulation, ou du moins, je ne vois pas comment faire.

    Mon code :
    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
    void LancerSimulation() {
     
            actualisersimulation();
            //TEST
            System.out.println("TEST -> FIN SIMULATION");
        }
     
        void actualisersimulation() {
     
            for (time = 0; time < 500; time = time + 1) {
                Simulateur.ActualiseObj(Simulateur.Artifice(tabArtifice, tabLignedeTir, tabAltitude, tabCouleurArtifice, tabRetard));
     
                try {
                    Thread.sleep(25);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    Quelqu'un saurait-il m'expliquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Il faut que ce soit multithread, voir la doc au sujet de Thread
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour cette info je m'y colle de suite

Discussions similaires

  1. [XL-2013] Problème pour utiliser boucle For -> Next
    Par parvi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/04/2015, 11h20
  2. Réponses: 0
    Dernier message: 04/04/2014, 07h22
  3. Problème pour fermer les sockets
    Par mohamida dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/10/2010, 11h10
  4. Problème pour fermer un classeur
    Par gdulu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/03/2009, 15h34
  5. [RegEx] Problème pour fermer des balises
    Par Miaou le chat thon dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2009, 10h48

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