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 :
- /*
- * Created on 2004-02-09
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
- package InterfaceGraphique;
- import java.io.*;
- import java.awt.*;
- import javax.swing.*;
- /**
- * @author Olivier
- *
- * Ouvre une fenetre dans laquelle on va afficher le bufferedReader entré
- *
- */
- public class FenetreSortieConsole extends JDialog {
- FenetreSortieConsole(BufferedReader br, String titre) throws IOException {
- setSize(400,400);
- setTitle(titre);
- setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- JTextArea sortieBlast = new JTextArea() ;
- JScrollPane areaScrollPane = new JScrollPane(sortieBlast);
- // areaScrollPane.setBackground(COULEUR) ;
- areaScrollPane.setVerticalScrollBarPolicy(
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
- areaScrollPane.setPreferredSize(new Dimension(400, 200));
- areaScrollPane.setBorder(BorderFactory.createTitledBorder(titre));
- String line = br.readLine() ;
- while (line != null) {
- sortieBlast.append(line + "\n" ) ;
- System.out.println(line) ;
- line = br.readLine() ;
- }
- Container panneau = getContentPane();
- panneau.add(areaScrollPane) ;
- }
- }
|
et un extrait du programme principal :
Code :
- executer.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent executer) {
- try { commandeCAP3 = ExtractionsDiverses.CreerCommande(valeurCommande1, cheminSaveSeq3) ;
- System.out.println("commande cap 3 :" + commandeCAP3) ;
- Process process2 = runtime.exec(commandeCAP3);
- // récupération de la sortie console de CAP3
- BufferedReader b2 = new BufferedReader (new InputStreamReader(process2.getInputStream())) ;
- String line2 = b2.readLine() ;
- // afficher la sortie console
- while (line2!=null) {
-
- System.out.println(line2) ;
-
- line2 = b2.readLine() ;
-
- }
- // ouvre une fenetre contenant la sortie console Cap3
- FenetreSortieConsole fr2 = new FenetreSortieConsole(b2, SORTIE_CAP3);
- fr2.show();
- process2.waitFor();
- } catch (Exception e) {
- JOptionPane messageAide = new JOptionPane();
- JOptionPane.showMessageDialog(null, e);
- }
-
-
- dispose();
- }
- }
-
- );
|
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