Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1384 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] [debutant] To thread or not to thread?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] [debutant] To thread or not to thread?

n°645816
roievil
Taking Fire, Need Assistance..
Posté le 17-02-2004 à 17:47:00  profilanswer
 

Bonjour,
 
mon programme dans sa forme actuelle est sensé lancer une application (CAP3) puis afficher dans un JDialog sa sortie console (les lignes qui s'affichent lorsque l'on lance CAP3  a partir de la console).
 
Or il faut attendre la fin de tout le programme JAVA pour que s'affiche dans le JDialog le texte en question
 
est ce que c'est a ca que servent les threads et pourriez vous me donner une exemple de comment m'en servir ici
 
code du Jdialog :  
 

Code :
  1. /*
  2. * Created on 2004-02-09
  3. *
  4. * To change the template for this generated file go to
  5. * Window>Preferences>Java>Code Generation>Code and Comments
  6. */
  7. package InterfaceGraphique;
  8. import java.io.*;
  9. import java.awt.*;
  10. import javax.swing.*;
  11. /**
  12. * @author Olivier
  13. *
  14. * Ouvre une fenetre dans laquelle on va afficher le bufferedReader entré
  15. *
  16. */
  17. public class FenetreSortieConsole extends JDialog {
  18. FenetreSortieConsole(BufferedReader br, String titre) throws IOException {
  19.  setSize(400,400);
  20.  setTitle(titre);
  21.  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  22.  JTextArea sortieBlast = new JTextArea() ;
  23.  JScrollPane areaScrollPane = new JScrollPane(sortieBlast);
  24.  // areaScrollPane.setBackground(COULEUR) ;
  25.  areaScrollPane.setVerticalScrollBarPolicy(
  26.      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  27.  areaScrollPane.setPreferredSize(new Dimension(400, 200));
  28.  areaScrollPane.setBorder(BorderFactory.createTitledBorder(titre));
  29.  String line = br.readLine() ;
  30.  while (line != null) {
  31.   sortieBlast.append(line + "\n" ) ;
  32.   System.out.println(line) ;
  33.   line = br.readLine() ;
  34.  }
  35.  Container panneau = getContentPane();
  36.  panneau.add(areaScrollPane) ;
  37. }
  38. }


 
et un extrait du programme principal :  
 
 

Code :
  1. executer.addActionListener(
  2.   new ActionListener() {
  3.    public void actionPerformed(ActionEvent executer) {
  4.     try {       commandeCAP3 = ExtractionsDiverses.CreerCommande(valeurCommande1, cheminSaveSeq3) ;
  5.       System.out.println("commande cap 3 :" + commandeCAP3) ;
  6.       Process process2 = runtime.exec(commandeCAP3);
  7.       // récupération de la sortie console de CAP3        
  8.       BufferedReader b2 = new BufferedReader (new InputStreamReader(process2.getInputStream())) ;
  9.       String line2 = b2.readLine() ;
  10.       // afficher la sortie console             
  11.       while (line2!=null) {               
  12.                
  13.        System.out.println(line2) ;
  14.            
  15.        line2 = b2.readLine() ;
  16.            
  17.       }
  18.       // ouvre une fenetre contenant la sortie console Cap3
  19.       FenetreSortieConsole fr2 = new FenetreSortieConsole(b2, SORTIE_CAP3);
  20.       fr2.show();
  21.       process2.waitFor();
  22.     } catch (Exception e) {
  23.      JOptionPane messageAide = new JOptionPane();
  24.      JOptionPane.showMessageDialog(null, e);
  25.     }
  26.                            
  27.          
  28.     dispose();
  29.    }
  30.   }
  31.          
  32.  );


 
Note : j'ai essayé de juste afficher un fichier deja créé pour cérifier que ce n'etait pas la sortie console qui etait defectueuse et on doit encore attendre la fin de tout le programme  
 
et puis j'affiche la sortie console alors je vois bien qu'elle est prête

mood
Publicité
Posté le 17-02-2004 à 17:47:00  profilanswer
 

n°645824
nraynaud
lol
Posté le 17-02-2004 à 17:54:52  profilanswer
 

j'ai la flemme de tout lire, mais je dirais qu'il te faut un SwingWorker
 
http://java.sun.com/products/jfc/t [...] eads2.html


---------------
trainoo.com, c'est fini
n°645918
roievil
Taking Fire, Need Assistance..
Posté le 17-02-2004 à 19:28:19  profilanswer
 

j'ai pas trop bien compris l'utiliét de cette classe, est ce pour améliorer l'utilisation des threads? Il me semble qu'elle sert a effecteuredes programmes en tachede fond ce qui n'Est aps exactement cedont j'ai besoin je voudrais qu'au cours de l'execution du programme on affiche un resultat intermédiaire
 
en fait l'idéal ce serait d'avoir affiché le défilement de la console de mon interpreteur (ecplipse) alors qu j'ai juste lancé mon jar avec la ligne de commande java -jar xxx.java de manière a suivre le déroullement sans eclipse.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] [debutant] To thread or not to thread?

 

Sujets relatifs
[Java/Servlet] Balcer une page d'attente avt le début d'un traitementdébutant cherche outils pas cher pour programmer sous palm OS
[Java] encore les hashmaps ! (recup la clé ?)[java3d] Questions de debutant
[JAVA] [Débutant] Mettre en couleur les onglets d'un JTabbedPane ?[JAVA]récupérer une saisie clavier
[JAVA] Polices (Font) dispo en java[JAVA] Centrer le texte d'une JTextArea
[JAVA] Utiliser KeyListener pour une exécution en mode console 
Plus de sujets relatifs à : [JAVA] [debutant] To thread or not to thread?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR