Affichage du console dans JTextArea

Bonjour,

je veux que l'affichage de mon console soit affiché dans JTextArea

String output = "attribute: " + attr.getID() + " => ";
System.out.println(output);

// Affiche chaque attribut
for (NamingEnumeration e = attr.getAll(); e.hasMore();) {
String output1 = "Valeur: " + e.next() + " | ";
System.out.println(output1);

1 réponse

  1. Modérateur
    Bonjour,

    Tu peux modifier le flux de System.out pour qu'il n'écrive plus dans la console mais où tu veux, dans un flux dont tu pourras récupérer le contenu quand tu veux, avec un ByteArrayOutputStream par exemple.

    Dans la documentation :
    System.setOut(PrintStream out)
    java.io.ByteArrayOutputStream

    Exemple :

    import java.io.ByteArrayOutputStream;
    import java.io.PrintStream;
    
    public class Test {
        public static void main(String[] args) {
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            System.setOut(new PrintStream(buffer));
            System.out.println("Test");
            System.err.println("Content of System.out : " + buffer.toString());
        }
    }
    1. merci beaucoup pour ta réponse mais tu peux me donner un peu de detail parce que je suis debutante en java cette classe je l'ajoute dans mon package ou quoi et merci d'avance
    2. @mouna310sinn je peux l'afficher dans un tableau ??
    3. Modérateur
      Le code que je t'ai donné n'est qu'un exemple qui permet de rediriger le System.out vers un buffer, tout ce que tu "imprimes" dans le System.out vient s'accumuler dans ce buffer au lieu de s'afficher dans la console, après tu utilises ce buffer comme tu veux, tu l'affiches dans un JTextArea, tu le mets dans un tableau, tu peux également le reformater, y a que l'embarras du choix, au final c'est juste un String...
    4. j'ai èssayè autre chose j'ai creer JLabel et j'ai suprimmé system.out..print et je l'ai remplacé par
      dn.setText("attribute: " + attr.getID() );
      
          // Affiche chaque attribut
          for (NamingEnumeration e = attr.getAll(); e.hasMore();) {
           //System.out.print("Valeur: " + e.next() );
           dn.setText("Valeur: " + e.next()  );
      
      ps: dn c'est le JLbel le probleme ce que il affiche que la derniére ligne :( je sais pas pourquoi
    5. en tout les cas merci c bon j'ai réglé mon probleme et désolé pour dérangement :)