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

AWT/Swing Java Discussion :

[Thread] [java.lang.IllegalThreadStateException] [Start]


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    Par défaut [Thread] [java.lang.IllegalThreadStateException] [Start]
    Bonjour,

    J'ai fais un petit code pour comprendre les thread. J'obtiens une erreur que je ne comprends pas.

    J'ai essaié de faire un chrono sans passer par la class Timer. J'ai un bouton qui appelle la méthode run de mon thread qui compte. Si j'appuye de nouveau sur le bouton cela appelle la méthode stop du thread. Mon problème vient si je refais un appelle de la méthode run.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    public class EssaiThread extends JFrame{
     
        public JPanel p;
        public JLabel l;
        public JRadioButton b;
        public leThread th;
     
         public EssaiThread() 
        {
            p = new JPanel();
            l = new JLabel("0");
            b = new JRadioButton("Start");
            th = new leThread(l);
            p.add(l);
            p.add(b);
            add(p);
            setVisible(true);
            pack();
     
            b.addActionListener(new ActionListener()
            {
                 public void actionPerformed(ActionEvent e) 
                {   
                     if(b.isSelected())
                    {
                        b.setText("Stop");
                        th.start();
                    }
                    else{
                        b.setText("Start");
                        th.stop();
                    }
                }
            });
        }
     
         public static void main(String[] args){
           new EssaiThread();
        }
    }
     
    class leThread extends Thread{
        public int count = 0;
        public JLabel l;
     
        public leThread(JLabel jl){
            l = jl;
        }
        public void run(){
            while(true)
            {
            count++;
            System.out.println(count);
            l.setText(new Integer(count).toString());
            try{Thread.sleep(1000);}
            catch (InterruptedException e) {}
            }
        }
    }
    Voici l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Parce que
    Citation Envoyé par javadoc de thread.start()
    It is never legal to start a thread more than once. In particular, a thread may not be restarted once it has completed execution.
    Et utiliser thread.stop(), c'est mal (cf la javadoc de Thread.stop(), et ici)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    Par défaut
    merci
    je viens de comprendre

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/10/2014, 00h58
  2. Réponses: 4
    Dernier message: 22/03/2012, 12h18
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45
  5. Exception in thread "main" java.lang.ArrayIndexOut
    Par Poseidon62 dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 04/11/2005, 01h38

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