2009-02-19 4 views
8

J'ai actuellement un programme qui imprime des lignes de texte à l'écran de diverses manières telles que les instructions 'System.out.println()' et pour les boucles l'impression de tous les éléments dans un tableau à l'écran.Comment rediriger toutes les sorties de la console vers une zone de texte GUI?

J'ajoute maintenant une interface graphique à ce programme. Mon problème est que je veux imprimer tout ce qui imprime sur la console d'Eclipse à une zone de texte dans mon interface graphique à la place. Est-ce possible et si oui, comment ferais-je cela?

Merci à l'avance.

+0

True sqook, je n'ai pas vu votre édition, j'avais changé la question initiale. –

Répondre

7

Une idée:

Créez votre propre PrintStream qui sort tout à cette zone de texte. Réglez ensuite cette nouvelle PrintStream être le flux standard output comme ça:

System.setOut(myPrintStream()); 
+0

serait-il possible pour vous de donner un peu plus de détails sur la façon dont je pourrais mettre en œuvre cette idée puisque l'impression se passe dans une classe séparée? Merci. –

+0

Il suffit de regarder le post donné par theomega! – romaintaz

21

Vérifiez cette article de blog, intitulé Redirecting System.out and System.err to JTextPane or JTextArea. Il décrit presque tout ce dont vous avez besoin.

L'idée de base est que vous créez votre propre flux de sortie spécialisé. Dans votre implémentation des méthodes write(), vous appelez du code pour ajouter les nouvelles données à votre zone de texte. Ensuite, vous définissez ce nouveau flux de sortie comme votre System.out en appelant System.setOut() ou System.setErr().

REMARQUE: il manque une chose à cet article. Vous devez start your program in a separate thread.

+0

Merci pour l'idée. Ce site semble avoir les choses qu'il veut imprimer sur le textarea dans la même classe que le gui. Je veux garder les classes séparées. –

+0

donc juste séparer le code en deux classes! – romaintaz

+0

Il a corrigé le problème de 2 threads. Donc le tutoriel est correct maintenant. –

Questions connexes