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

Java Discussion :

soucis lancement thread


Sujet :

Java

  1. #1
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut soucis lancement thread
    Bonjour,

    J'ai un code (avec netbeans, sous gnu/linux, avec l'openjdk) que je veux lancer au démarrage de l'application (mise à jour de 6 flux rss). Comme cela ralenti grandement le lancement (car ça ne doit pas être bien codé), j'essaye de mettre ceci dans un thread, mais j'ai toujours un message d'erreur disant que mon package trhead est inconnu.

    voici une partie du code, pour l'action du thread :

    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
     
    public class MyThread extends Thread {
     
        public void run(){
            try {
                SyndFeedInput sfi1 = new SyndFeedInput();           
                String lien1 = "http://www.planet-libre.org/feed.php?type=rss";
                URL rss1 = new URL(lien1);
                jEditorPane2.setContentType("text/html");
                jEditorPane2.setEditable(false);
                StringBuffer buf1 = new StringBuffer();
                SyndFeed feed1 = sfi1.build(new XmlReader(rss1) {});
                List entries1 = new ArrayList();
                entries1 = feed1.getEntries();
     
                for (int i = 0; i < entries1.size(); i++) {
                    SyndEntry entry1 = (SyndEntry) entries1.get(i);
                    buf1.append("<br>Article : " + entry1.getTitle() + "<br>");
                    buf1.append("Date de publication : " + entry1.getPublishedDate() + "<br>");
                    buf1.append("<a href=" + entry1.getLink() + ">" + "Lire l'article sur le site" + "</a>" + "<br>");
                }
                jEditorPane2.addHyperlinkListener(new HyperlinkListener() {
     
                        @Override
                    public void hyperlinkUpdate(HyperlinkEvent e) {
                        if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                            try {
                                Desktop desktop1 = Desktop.getDesktop();
                                if (desktop1.isSupported(Desktop.Action.BROWSE)) {
                                    URI sss = new URI(e.getURL().toString());
                                    desktop1.browse(sss);
                                }
                            } catch (Exception ex) {
                                JOptionPane.showMessageDialog(null, ex.toString(), "Problème" , JOptionPane.ERROR_MESSAGE);
                            }
                        }
                    }
                });
                jEditorPane2.setText("<html><body>" + buf1.toString() + "</body></html>");
                jEditorPane2.setCaretPosition(0); 
     
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.toString(), "Problème", JOptionPane.ERROR_MESSAGE);
            }    
         }
            }

    et pour le lancer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MyThread myThread = new MyThread();
     myThread.start();
    Je met ceci au tout début de l'application.
    Si quelqu'un voit le soucis svp ?

    Merci d'avance,
    Très cordialement,

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par lostsoul Voir le message
    mais j'ai toujours un message d'erreur disant que mon package trhead est inconnu.
    C'est à dire ??? Sans message d'erreur précis tu n'auras pas de solution précise...



    Sinon c'est pas bien grave mais ca me titille toujours ce genre de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                List entries1 = new ArrayList(); // ArrayList est créé pour rien
                entries1 = feed1.getEntries();
     
                // Il est préférable de faire directement ceci :
                List entries1 = feed1.getEntries();
                // en plus c'est plus court et plus simple !


    a++

  3. #3
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Il me dit : identifier expected devant la ligne start qui lance le thread.

    Mais je viens aussi de m'apercevoir que quand j'ai fais la classe thread, netbeans n'a pas demandé l'import de java.lang.thread. Et en l'ajoutant manuellement, il me dit qu'elle n'est pas utilisée. C'est bizarre... non ?

    La classe thread est placée juste après tout le code généré par netbeans, et le start est juste après.

    Et merci pour le arraylit ;-)

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lostsoul Voir le message
    Il me dit : identifier expected devant la ligne start qui lance le thread.
    Tu as une erreur de syntaxe.
    Mais le code que tu nous fournis n'est pas suffisant pour trouver l'erreur...

    Citation Envoyé par lostsoul Voir le message
    Mais je viens aussi de m'apercevoir que quand j'ai fais la classe thread, netbeans n'a pas demandé l'import de java.lang.thread.
    L'import du package java.lang est implicite.


    a++

  5. #5
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Voila plus de code si cela peut aider :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    // connecting action tasks to status bar via TaskMonitor
            TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
            taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
                @Override
                public void propertyChange(java.beans.PropertyChangeEvent evt) {
                    String propertyName = evt.getPropertyName();
                    if ("started".equals(propertyName)) {
                        if (!busyIconTimer.isRunning()) {
                            statusAnimationLabel.setIcon(busyIcons[0]);
                            busyIconIndex = 0;
                            busyIconTimer.start();
                        }
                        progressBar.setVisible(true);
                        progressBar.setIndeterminate(true);
                    } else if ("done".equals(propertyName)) {
                        busyIconTimer.stop();
                        statusAnimationLabel.setIcon(idleIcon);
                        progressBar.setVisible(false);
                        progressBar.setValue(0);
                    } else if ("message".equals(propertyName)) {
                        String text = (String)(evt.getNewValue());
                        statusMessageLabel.setText((text == null) ? "" : text);
                        messageTimer.restart();
                    } else if ("progress".equals(propertyName)) {
                        int value = (Integer)(evt.getNewValue());
                        progressBar.setVisible(true);
                        progressBar.setIndeterminate(false);
                        progressBar.setValue(value);
                    }
                }
            });
        }
     
        @Action
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
     
        // code de netbeans          
     
     
        // flux rss
     
            public class MyThread extends Thread {    
            @Override
            public void run(){
     
     
            try {
     
                // flux april
     
                SyndFeedInput sfi1 = new SyndFeedInput();           
                String lien1 = "http://www.april.org/fr/rss.xml";
                URL rss1 = new URL(lien1);
                jEditorPane2.setContentType("text/html");
                jEditorPane2.setEditable(false);
                StringBuffer buf1 = new StringBuffer();
                SyndFeed feed1 = sfi1.build(new XmlReader(rss1) {});
                List entries1 = feed1.getEntries();
     
                for (int i = 0; i < entries1.size(); i++) {
                    SyndEntry entry1 = (SyndEntry) entries1.get(i);
                    buf1.append("<br>Article : " + entry1.getTitle() + "<br>");
                    buf1.append("Date de publication : " + entry1.getPublishedDate() + "<br>");
                    buf1.append("<a href=" + entry1.getLink() + ">" + "Lire l'article sur le site" + "</a>" + "<br>");
                }
                jEditorPane2.addHyperlinkListener(new HyperlinkListener() {
     
                        @Override
                    public void hyperlinkUpdate(HyperlinkEvent e) {
                        if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                            try {
                                Desktop desktop1 = Desktop.getDesktop();
                                if (desktop1.isSupported(Desktop.Action.BROWSE)) {
                                    URI sss = new URI(e.getURL().toString());
                                    desktop1.browse(sss);
                                }
                            } catch (Exception ex) {
                                JOptionPane.showMessageDialog(null, ex.toString(), "Problème" , JOptionPane.ERROR_MESSAGE);
                            }
                        }
                    }
                });
                jEditorPane2.setText("<html><body>" + buf1.toString() + "</body></html>");
                jEditorPane2.setCaretPosition(0); 
     
     
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.toString(), "Problème", JOptionPane.ERROR_MESSAGE);
            }  
     
            }
    }
     
           MyThread myThread = new MyThread();
           myThread.start();
     
     
        // timer mise a jour de l'heure dans la barre d'etat
        Timer t = new Timer(20000, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ev) {
                statusMessageLabel.setText(new SimpleDateFormat("EEEE, d MMM yyyy   kk:mm").format(new Date()));
            }
        });
    Et j'aurais du m'en douter pour java.lang

    Merci beaucoup d'essayer de m'aider ;-)

    Très cordialement,

  6. #6
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Tu pourrais aussi poster l'exception complete qui correspond à ce code?

  7. #7
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Soit le code que tu as posté est incomplet et mal-indenté. Ca n'aide pas pour trouver l'erreur...


    Mais on dirait que ton code est en dehors de toute méthode


    a++

  8. #8
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Voila le message d'erreur :

    ProfDepanneView.java:2244: <identifier> expected
    myThread.start();

    Je n'ai jamais fais de thread, et c'est vrai que je ne sais pas trop comment m'y prendre...

  9. #9
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Comme je l'ai dit, soit le code que tu nous as donné est incomplet, soit il est faux puisque le code n'est pas à l'intérieur d'une méthode...


    Cela n'a rien à voir avec le thread. C'est juste du code incorrect.



    a++

  10. #10
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    D'accord, merci d'avoir essayé de m'aider.

Discussions similaires

  1. Souci avec Thread::Sleep ()
    Par jlg_47 dans le forum C++/CLI
    Réponses: 3
    Dernier message: 20/02/2014, 14h34
  2. Souci de thread avec une application côté persistance
    Par Lolitaaa dans le forum Persistance des données
    Réponses: 1
    Dernier message: 06/12/2011, 23h28
  3. souci lancement rwserver
    Par jeremzzz dans le forum Reports
    Réponses: 0
    Dernier message: 28/03/2011, 14h07
  4. Soucis intégration Thread/Swing
    Par Balbuzard dans le forum Débuter
    Réponses: 2
    Dernier message: 19/08/2008, 10h54
  5. Petit soucis avec Thread::Queue et une classe
    Par vodevil dans le forum Web
    Réponses: 16
    Dernier message: 09/06/2006, 21h41

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