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

avec Java Discussion :

Explication sur thread


Sujet :

avec Java

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Explication sur thread
    Bonjour,
    Pour mon probléme d'animation j'ai décidé de passer par un Thread à défaut de meilleur idée.
    J'ai trouvé un bout de code sur le net que j'ai modifié comme ceci:
    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
    class AnimationThread1 implements Runnable {
     
        public void run() {
                 Coordinate pa1 = new Coordinate(0,0);
                  Coordinate pa2 = new Coordinate(0,0);
     
            for (int t = 0 ;t<_Coor_mobil.size();t++){
                if(t == 0){
     
                    seb.setLat(_Coor_mobil.get(t).getLat());
                    seb.setLon(_Coor_mobil.get(t).getLon());
                    map.addMapMarker(seb);
                }else{
                    pa1 = _Coor_mobil.get(t-1);
                    pa2 = _Coor_mobil.get(t);
                    seb.setLat(_Coor_mobil.get(t).getLat());
                    seb.setLon(_Coor_mobil.get(t).getLon());
                    map.addMapMarker(seb);
     
                }
                     try {
                         Thread.sleep(50);
                     } catch (InterruptedException ex) {
                         Logger.getLogger(Graph.class.getName()).log(Level.SEVERE, null, ex);
                     }
            }
    			map.addMapMarker(seb);
     
     
    		}
    	}
    Ensuite j'utilise ce code dans un bouton pour demarrer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new Thread (new AnimationThread1()).start();
    Comment faire pour faire Stopper mon thread par clique sur un autre bouton car la de la manière dont il est déclaré je ni arrive pas.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Membre actif
    Homme Profil pro
    Consultant BigData
    Inscrit en
    Juillet 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant BigData

    Informations forums :
    Inscription : Juillet 2009
    Messages : 129
    Points : 280
    Points
    280
    Par défaut
    Je te conseille un code dans le genre de celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //Création du thread
    Thread th = new Thread (new AnimationThread1());
     
    //Lancement du thread
    th.start(); 
     
    //Arrêt du thread
    th.interrupt();
    PS : une petite remarque de sémantique (ton code fonctionnera tout de même sans prendre en compte la remarque), mais ta classe AnimationThread1 implémente "Runnable" et n'étend donc pas directement Thread. Donc soit tu peux la renommer AnimationRunnable1, soit tu peux la faire étendre Thread au lieu d'implémenter Runnable.

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Bon si tu veux absolument utiliser un Thread pour faire ton animation pourquoi pas.
    Par contre tu ne peux pas manipuler tes composant graphiques depuis ce thread. (cf : http://gfx.developpez.com/tutoriel/j...ing-threading/)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    @Oussapik : Attention avec interrupt() car cela n'interrompt pas vraiment le thread.
    Cela ne fait que modifier son status, qu'il faut alors prendre en compte dans le code exécuté par le thread...


    @hugoclo : Comme le dit wax78 pour mieux te renseigner ce serait bien de connaitre le contexte d'exécution...
    Mais un Timer me semble plus approprié (java.util.Timer ou javax.swing.Timer selon le cas).


    a++

Discussions similaires

  1. Explication sur l'utilisation de Thread
    Par pHlegMatikangel dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 23/11/2008, 09h01
  2. Explications sur Threads
    Par devdebutantajax dans le forum Windows
    Réponses: 10
    Dernier message: 08/11/2008, 20h42
  3. [Thread] explication sur les threads
    Par airod dans le forum Général Python
    Réponses: 4
    Dernier message: 16/10/2006, 19h02
  4. Réponses: 28
    Dernier message: 18/08/2003, 11h54
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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