cs_Lycanthrope
Messages postés14Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention 4 janvier 2005
-
23 mai 2004 à 16:58
cs_Lycanthrope
Messages postés14Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention 4 janvier 2005
-
24 mai 2004 à 10:35
Bonjour,
J'explique mon problème :
Je veux récupérer et afficher le résultat d'une commande DOS dans un JTextArea, seulement, ça ne marche pas spécialement avec mon code, étant donné qu'il récupère ligne par ligne le résultat de la commande.
Alors, est ce qu'il y a un moyen d'entrer des lignes 1 par 1 dans un JTextArea ou, à défaut, de récupérer le résultat de la commande dans sa totalité pour la mettre dans le JTextArea ????
Je joins le code :
La commande (qui fonctionne parfaitement) :
public TestPing(){
{ try {
Process p =rt.exec("ipconfig");
java.io.BufferedReader br= new java.io.BufferedReader( new InputStreamReader(p.getInputStream()));
String s=null;
while ((s = br.readLine()) != null)
System.out.println(s);
new Affiche(s); // ici, j'envoie à ma fonction d'affichage
}
catch(Exception e){
e.printStackTrace();
}
}
}
=========================================
L'affichage (c'est ici que ça me pose problème):
import javax.swing.*;
public class Affiche extends JFrame{
public Affiche(String s){
JFrame fenetre = new JFrame ("Résultat de la commande");
JTextArea res = new JTextArea(s);
fenetre.getContentPane().add(res);
res.setText(s); // en théorie, ici, je récupère les données que je veux
fenetre.setSize(300,300);
fenetre.show();
}
}
La fenêtre s'ouvre bien, mais il n'y a rien dans le JTextArea.
kaloway
Messages postés358Date d'inscriptionjeudi 24 octobre 2002StatutMembreDernière intervention13 avril 2020 24 mai 2004 à 08:53
kaloway
voila le code qui fonctionne:
public TestPing(){
try {
Process p =rt.exec("ipconfig");
java.io.BufferedReader br= new java.io.BufferedReader( new InputStreamReader(p.getInputStream()));
String s;
String t="";
while ((s = br.readLine()) != null){
System.out.println(s);
t=t+s;
}
new Affiche(t);
}
catch(Exception e){
e.printStackTrace();
}
}
j'insiste qu'il faut respect l'ecriture de la boucle while comme ceci :
while ((s = br.readLine()) != null){
System.out.println(s);
t=t+s;
}