Wie leite ich alle Konsolenausgaben in eine GUI-Textbox um?

8

Ich habe derzeit ein Programm, das Textzeilen auf verschiedene Arten wie zum Beispiel 'System.out.println ()' Anweisungen auf den Bildschirm druckt und für das loop das Drucken aller Elemente in einem Array zum screenen macht.

Ich füge jetzt eine GUI zu diesem Programm hinzu. Mein Problem ist, dass ich alles, was auf der Eclipse-Konsole gedruckt wird, stattdessen in eine Textbox in meiner GUI drucken möchte. Ist das möglich und wenn ja, wie würde ich das tun?

Vielen Dank im Voraus.

    
Nik Reiman 19.02.2009, 10:55
quelle

2 Antworten

21

Sehen Sie sich diesen Blogartikel mit dem Titel Redirect System.out und System.err an zu JTextPane oder JTextArea . Es beschreibt fast alles, was Sie brauchen.

Die Grundidee ist, dass Sie Ihren eigenen spezialisierten Ausgabestrom erstellen. In Ihrer Implementierung der Methoden write() rufen Sie Code auf, um die neuen Daten an Ihr Textfeld anzufügen. Dann legen Sie diesen neuen Ausgabestream als System.out fest, indem Sie System.setOut() oder System.setErr() aufrufen.

HINWEIS: In diesem Artikel fehlt eine Sache. Sie müssen Ihr Programm in einem separaten Thread starten .

    
theomega 19.02.2009 11:06
quelle
7

Eine Idee:

Erstellen Sie Ihren eigenen PrintStream, der alles an diese Textbox ausgibt. Dann setze diesen neuen PrintStream als Standard-Ausgabe Stream wie folgt:

%Vor%     
romaintaz 19.02.2009 11:03
quelle

Tags und Links