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 :

Insérer un 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 Insérer un Thread
    Bonjour,
    Voila je me sert de cette class pour envoyer des mails
    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
    package mailsna;
    import java.io.IOException;
    import java.nio.file.DirectoryStream;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Iterator;
    import java.util.Properties;
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
     
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.swing.JLabel;
    import javax.swing.JTextArea;
    /**
     *
     * @author 
     */
    public class EnvoiTLS {
        static Properties mailServerProperties;
        static Session getMailSession;
        static MimeMessage generateMailMessage;
        public  boolean generateAndSendEmail(String Aqui,String Votre_mail,String Ch_Votre_Mail) throws AddressException, MessagingException, InterruptedException {
     
    boolean mail_ok = false; 
    try{
    String host = "smtp.gmail.com";
    String username = "XXXX";
    String password = "XXXXX";
    String port = "465";
     
    String to = Aqui;
    String subject = "Test d'envoi automatique par Java";
    String content = Votre_mail;
     
     
    InternetAddress[] addresses = InternetAddress.parse(to, true);
    InternetAddress fromAddress = new InternetAddress(username);
     
    Properties props = new Properties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", username);
    props.put("mail.smtp.port", port);
    props.put("mail.smtp.starttls.enable","true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.smtp.socketFactory.port", port);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");
     
    System.out.println("creating session");
    Session session = Session.getDefaultInstance(props, null);
     
    System.out.println("creating message");
    MimeMessage message = new MimeMessage(session);
    message.setText(content);
    message.setSubject(subject);
    message.setFrom(fromAddress);
    message.setRecipients(Message.RecipientType.TO,addresses);
    message.setHeader("Disposition-Notification-To",fromAddress.getAddress());
    message.setHeader("Return-Receipt-To",fromAddress.getAddress());
    FileDataSource fds = new FileDataSource(Ch_Votre_Mail);         
    message.setDataHandler(new DataHandler(fds));
     
    Transport transport = session.getTransport("smtp");
     
    transport.connect(host, username, password);
     
    transport.sendMessage(message, message.getAllRecipients());
     
    transport.close();
     
    mail_ok = true;
    }catch(Exception et){
       mail_ok = false; 
    }
    finally{
    return mail_ok;
    }
        }
    }
    et dans ma class pricipale:
    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
    private void jBEnvActionPerformed(java.awt.event.ActionEvent evt) {                                      
           String nonparti = "";
           String bienpa = "";
           jTextArea1.setText("EN COURS");
           boolean parti = false;
            try {
                setCursor(Cursor.WAIT_CURSOR);
                recupMsg();
                for(int m = 0; m < ListMail.size();m++){
                    boolean nonenvoyer = false;
                   String nom_Mail = ListMail.get(m).toString().toLowerCase().replaceAll(".txt", "");
                    for(int dest = 0;dest <Destinataire.size();dest++){
                        String nom_dest = Destinataire.get(dest).toString().toLowerCase();
     
                        if(nom_dest.split(";")[0].contains(nom_Mail)){
                            EnvoiTLS envoi = new EnvoiTLS();
                            // bienpa 
                            jTextArea1.setText("Envoie du mail de " + nom_Mail +" à " + nom_dest.split(";")[1] + ":") ;
                           parti =  envoi.generateAndSendEmail(nom_dest.split(";")[1], ouvrir(Ch_Mail + "\\" + ListMail.get(m).toString()), Ch_Mail + "\\" + ListMail.get(m).toString() );
                           if(parti)jTextArea1.setText(" Ok\n"); //bienpa += " Ok\n" ;
                           else{
                               jTextArea1.setText( " erreur\n");
                              // bienpa += " erreur\n" ;
                           }
                            nonenvoyer = true;
                        }                       
                    }
                   if(!nonenvoyer)
                        nonparti+= ListMail.get(m) + "\n";  
                   jTextArea1.setText(bienpa);
                }
                setCursor(Cursor.DEFAULT_CURSOR);
            } catch (IOException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (AddressException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessagingException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InterruptedException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            }
            if(nonparti!="") System.out.println(nonparti);
        }
    Le fait de pas avoir de thread empêche mon Jtextarea de s'incrémenter.
    Il n'y a qu'a la fin de ma boucle un "Ok" qui s'affiche.
    j'ai trouvée une parade avec une variable String que j’implémente a chaque tour de boucle pour enfin a la sorti du for l’écrire dans mon Jtextexarea mais ça ne fait pas très propre.
    Je souhaiterais savoir comment insérer un thread et ou.
    Cordialement.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Regarde du coté de swingworker, pour faire des opération longues impliquant un rafraichissement de l'interface.

    Attention aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    }catch(Exception et){
       mail_ok = false; 
    }
    ceci est crade au possible. Tu dois garder un trace quelque part de l'exception, ne serait-ce que pour t'aider dans le futur à décoincer une app qui se mettrait à déconner.

  3. #3
    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
    J ai trouvé sur le site une bonne explication sur le SwingWorker mais à la fin il y a cette remarque
    SwingWorker ne garantit pas que la méthode done sera appelée après tous les appels à process. Ainsi, si vous mettez dans la méthode done l'affichage d'une ligne supplémentaire dans le textarea, cette ligne ne se trouvera pas forcément en dernière dans le textarea.
    et pour ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    }catch(Exception et){
       mail_ok = false; 
    }
    je vais corriger
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    La spec garanti que done() est appelée quand doInBackground() a terminé.
    Ce qu'elle ne garanti pas, c'est que l'appel a lieu après les différents appels à process(List<V> chunks). Ce n'est pas bien grave, si Vest de type String (les message à ajouter) t'as juste à mettre le ok comme dernier chunk dans tes appels à publish(V...)

  5. #5
    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
    voila mon code modifier mais ca ne change rien
    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
     public static void updateJtextarea(){
        //On crée le SwingWorker   
        SwingWorker sw = new SwingWorker(){
     
            @Override
            protected Object doInBackground() throws Exception {
               String nonparti = "";
     
           jTextArea1.setText("EN COURS");
           boolean parti = false;
            try {
     
                recupMsg();
                for(int m = 0; m < ListMail.size();m++){
                    boolean nonenvoyer = false;
                   String nom_Mail = ListMail.get(m).toString().toLowerCase().replaceAll(".txt", "");
                    for(int dest = 0;dest <Destinataire.size();dest++){
                        String nom_dest = Destinataire.get(dest).toString().toLowerCase();
     
                        if(nom_dest.split(";")[0].contains(nom_Mail)){
                            EnvoiTLS envoi = new EnvoiTLS();
                             bienpa = "Envoie du mail de " + nom_Mail +" à " + nom_dest.split(";")[1] + ":"; 
                          parti =  envoi.generateAndSendEmail(nom_dest.split(";")[1], ouvrir(Ch_Mail + "\\" + ListMail.get(m).toString()), Ch_Mail + "\\" + ListMail.get(m).toString() );
                           if(parti)jTextArea1.setText(" Ok\n"); //bienpa += " Ok\n" ;
                           else{
                               bienpa += " erreur\n" ;
                           }
                            nonenvoyer = true;
                        }                       
                    }
                   if(!nonenvoyer)
                        nonparti+= ListMail.get(m) + "\n";  
                  }
               Thread.sleep(500);
            } catch (IOException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (AddressException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessagingException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InterruptedException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            }
            if(nonparti!="") System.out.println(nonparti); 
     
                return bienpa;
     
     
            }
            public void done(){            
            if(SwingUtilities.isEventDispatchThread())
            jTextArea1.setText(bienpa);
          } 
        };
         sw.addPropertyChangeListener(new PropertyChangeListener(){
          //Méthode de l'interface
          public void propertyChange(PropertyChangeEvent event) {
            //On vérifie tout de même le nom de la propriété
            if("progress".equals(event.getPropertyName())){
              if(SwingUtilities.isEventDispatchThread())
              jTextArea1.setText(bienpa);
            }            
          }         
        });
        //On lance le SwingWorker
        sw.execute();
      }
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Heuu, là tu remplis une String, et puis quand tout est fini, tu la met dans le JTextArea, c'est pas prêt de faire un affichage progressif.

    Ton code doit ressembler à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    new SwingWorker<Void,String>{
        public Void doInBackground(){
            for(.....){
                     publish("Sending to XXXXX");
            }
            publish("Done");
            return null;
        }
        public void process(List<String> chunks){
              for (String message: chunks){
                    textarea.append(message);
              }
        }
    }

  7. #7
    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
    Merci mais je ne comprends pas tout. Je doit mettre votre code dans ma fonction updatejtextarea?
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Je t'explique comment tu dois faire ton swingworker, après tu le met où t'en a besoin


    Celui que tu nous a montré ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    new SwingWorker<Void,String>{
        public Void doInBackground(){
            for(.....){
                     text=text+"..........";
            }
            return null;
        }
        public void done(){
              textarea.setText(text);
        }
    }
    Donc forcément, dans ton code, la mise à jour ne se fait qu'à la fin.

  9. #9
    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
    je vais passer pour un idiot mais quand
    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SwingWorker sw = new SwingWorker<void,String>
    ca me marque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    '(' or '[' expected
     
    illegal start of type
     
    SwingWorker is abstract; cannot be instantiate
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    j'ai oublié les () avant l'accolage ouvrante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    new SwingWorker<Void,String>(){
        public Void doInBackground(){
            for(.....){
                     publish("Sending to XXXXX");
            }
            publish("Done");
            return null;
        }
        public void process(List<String> chunks){
              for (String message: chunks){
                    textarea.append(message);
              }
        }
    };

  11. #11
    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
    Voici mon code modifié
    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
    public static void updateJtextarea(){
     
            new SwingWorker<Void,String>(){
        public Void doInBackground(){
             String nonparti = "";
     
           jTextArea1.append("En cours\n");
           boolean parti = false;
            try {
     
                recupMsg();
                for(int m = 0; m < ListMail.size();m++){
                    int t = 0;
                    boolean nonenvoyer = false;
                   String nom_Mail = ListMail.get(m).toString().toLowerCase().replaceAll(".txt", "");
                    for(int dest = 0;dest <Destinataire.size();dest++){
                        String nom_dest = Destinataire.get(dest).toString().toLowerCase();
                        if(nom_dest.split(";")[0].contains(nom_Mail)){
                            EnvoiTLS envoi = new EnvoiTLS();
                             bienpa = "Envoie du mail de " + nom_Mail +" à " + nom_dest.split(";")[1] + ":"; 
                             publish(bienpa);
                          parti =  envoi.generateAndSendEmail(nom_dest.split(";")[1], ouvrir(Ch_Mail + "\\" + ListMail.get(m).toString()), Ch_Mail + "\\" + ListMail.get(m).toString() );
                          if(parti){ 
     
                               bienpa = " Ok\n" ;
     
                           }
                           else{
     
                               bienpa = " erreur\n" ;
     
                           }
                            t++;
                            setProgress(t);
                            nonenvoyer = true;
                        }                       
                    }
                   if(!nonenvoyer)
                        nonparti+= ListMail.get(m) + "\n";  
                  }
                 publish("Done");            
               Thread.sleep(500);
            } catch (IOException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (AddressException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessagingException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InterruptedException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            }
            if(nonparti!="") System.out.println(nonparti); 
            publish("Done");
            return null;
                }
        public void process(List<String> chunks){
              for (String message: chunks){
                    jTextArea1.append(message);
              }
        }
    };
     
      }
    mais quand j'appelle ma fonction updateJtextarea() il ne se passe rien.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il faut le lancer ton SwingWorker, il ne suffit pas de l'instancer. Pour ça, appeler la méthode execute() dessus:

    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
    public static void updateJtextarea(){
     
            SwingWorker<Void,String> sw = new SwingWorker<Void,String>(){
        public Void doInBackground(){
             String nonparti = "";
     
           jTextArea1.append("En cours\n");
           boolean parti = false;
            try {
     
                recupMsg();
                for(int m = 0; m < ListMail.size();m++){
                    int t = 0;
                    boolean nonenvoyer = false;
                   String nom_Mail = ListMail.get(m).toString().toLowerCase().replaceAll(".txt", "");
                    for(int dest = 0;dest <Destinataire.size();dest++){
                        String nom_dest = Destinataire.get(dest).toString().toLowerCase();
                        if(nom_dest.split(";")[0].contains(nom_Mail)){
                            EnvoiTLS envoi = new EnvoiTLS();
                             bienpa = "Envoie du mail de " + nom_Mail +" à " + nom_dest.split(";")[1] + ":"; 
                             publish(bienpa);
                          parti =  envoi.generateAndSendEmail(nom_dest.split(";")[1], ouvrir(Ch_Mail + "\\" + ListMail.get(m).toString()), Ch_Mail + "\\" + ListMail.get(m).toString() );
                          if(parti){ 
     
                               bienpa = " Ok\n" ;
     
                           }
                           else{
     
                               bienpa = " erreur\n" ;
     
                           }
                            t++;
                            setProgress(t);
                            nonenvoyer = true;
                        }                       
                    }
                   if(!nonenvoyer)
                        nonparti+= ListMail.get(m) + "\n";  
                  }
                 publish("Done");            
               Thread.sleep(500);
            } catch (IOException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (AddressException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessagingException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InterruptedException ex) {
                Logger.getLogger(Vue.class.getName()).log(Level.SEVERE, null, ex);
            }
            if(nonparti!="") System.out.println(nonparti); 
            publish("Done");
            return null;
                }
        public void process(List<String> chunks){
              for (String message: chunks){
                    jTextArea1.append(message);
              }
        }
    };
      sw.execute();
      }

  13. #13
    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
    Ca marche,
    Merçi tchize_ pour tout le temps passé à m'aider.
    Cordialemment
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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