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 :

Thread qui ne se lance pas


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 73
    Points
    73
    Par défaut Thread qui ne se lance pas
    J'ai créé une classe qui implémente Runnable dont voici le 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
    21
    22
    public void mouseEntered    (MouseEvent e) {
            JButton flownoverButton = (JButton) e.getComponent();
            thread = new Thread();
            thread.start();                 // lancement du thread
     
            while(thread.isAlive()) { }     // attente fin du thread
     
            char[] tab = new char[1];
            tab = String.valueOf(flownoverButton.getText()).toCharArray();
            listChar.add(tab[0]);
            displayKeyCode();
        }
     
        // Thread utilisé pour la temporisation de 1 seconde
        public void run() {
            logger.debug("Thread lancé");
            try {
                Thread.sleep(1000);                  // attente d'une seconde
            } catch (InterruptedException e) {
                logger.error("Thread interrompu",e);
            }
        }
    Dans ce programme j'ai bien initialisé le Thread, mais la fonction start() ne semble pas lancer le thread ...
    Quelqu'un a une idée ???

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Tu fais new Thread()??

    T'es sur qu'il ne faut pas que tu fasses une instanciation de ta classe qui implements runnable?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Il te faut définir un classe de type Thread (MaClasse par exemple) avec la méthode run().

    Ensuite (dans le main par exemple) tu crées une instance de cette classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaClasse thread = new MaClasse();
    thread.start();
    A+

    Pour plus d'explications lire ces cours et tutoriels du site pour apprendre Java : http://java.developpez.com/cours/
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  4. #4
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Si ta classe qui implémente Runnable est la meme que celle qui contient la méthode mouseEntered, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    JButton flownoverButton = (JButton) e.getComponent();
            thread = new Thread(this);
            thread.start();                 // lancement du thread
            
            while(thread.isAlive()) { }     // attente fin du thread
            
            char[] tab = new char[1];
            tab = String.valueOf(flownoverButton.getText()).toCharArray();
            listChar.add(tab[0]);
            displayKeyCode();
    Sinon, tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thread = new Thread(instance);
    où 'instance' est une instance de ta classe qui implémente Runnable.
    Bonne chance.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 73
    Points
    73
    Par défaut
    oui, bien joué, il fallait mettre l'instance en cours en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thread = new Thread(this);

  6. #6
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par barbiche
    oui, bien joué, il fallait mettre l'instance en cours en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thread = new Thread(this);

    A noter que toutes les solutions qui t'on été donnée plus bas doivent fonctionner aussi!
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Thread qui ne se lance pas
    Par pommefrite dans le forum Général Python
    Réponses: 3
    Dernier message: 25/06/2014, 19h46
  2. Label dans une fenêtre lancée par un thread qui ne s'affiche pas !
    Par totojava dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 23/01/2011, 15h07
  3. Thread qui ne se lance pas
    Par davels dans le forum Langage
    Réponses: 6
    Dernier message: 04/12/2007, 18h05
  4. mmc.exe qui ne se lance pas
    Par r0d dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 27/04/2005, 17h11

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