Rediriger la sortie d'erreur standard vers une JTextArea

Rediriger la sortie d'erreur standard vers une JTextArea - Java - Programmation

Marsh Posté le 07-12-2003 à 14:10:09    

Bonjour, je cherche à savoir si il est possible, en Java, de rediriger tous les messages d'erreurs vers un JTextArea?
Je cherche un peu l'équivalent du freopen en C mais je ne sais même pas vraiment comment sont géré les input des JTextArea en java (est-ce un peu comme les terminaux et leurs files decriptors en C (dev/tty sous Linux) ?)
Ou si je doit par exemple créé un thread écoutant la sortie et la redirigeant vers le JTextArea avec SetText?
 
J'ai aucune expérience en java c'est la raison pour laquelle je ne sais pas vraiment de quelle coté allé voir...
 
 :jap: merci d'avance.


Message édité par peak le 07-12-2003 à 14:12:20
Reply

Marsh Posté le 07-12-2003 à 14:10:09   

Reply

Marsh Posté le 07-12-2003 à 14:29:49    

regarde log4j déjà pour une structure de logging uniforme. Sinon tu peux rediriger les canaux de sortie et d'erreur vers un autre pipe, voir la classe java.lang.System dans la javadoc

Reply

Marsh Posté le 07-12-2003 à 14:57:26    

http://www.google.com/search?hl=en [...] gle+Search
 
ça a pas l'air d'être prévu en standard.
À la louche, je dirais qu'il faut diriger le flux vers le Document du JTextArea http://java.sun.com/j2se/1.4.2/doc [...] ument.html
Le pb c'est que le flux fonctionne en continu et que le document fonctionne par actions (avec undo etc.) il faut donc adapter. Et j'ai pas vu d'adaptateur tout fait.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-12-2003 à 16:49:19    

Merci pour vos conseils mais comme je suis à la bourre  :ange:  pour mon projet ; j'ai opté pour une solution plus brouillonne avec une class contenant JTextArea static qui utilise une fonction membre qui tape les messages d'erreurs dedans...
A mon avis si ce que je cherchais n'est pas courrant c'est que ça ne doit pas être la meilleur manière de faire.
 
remerci
:bounce:
 

Reply

Marsh Posté le 07-12-2003 à 16:54:36    

nraynaud a écrit :

ça a pas l'air d'être prévu en standard.


[:w3c compliant]
 

nraynaud a écrit :


Le pb c'est que le flux fonctionne en continu et que le document fonctionne par actions (avec undo etc.) il faut donc adapter. Et j'ai pas vu d'adaptateur tout fait.


bha c'est super simple ! tu surcharge la méthode write(int) d'un Outputstream, tu le fous dans un PrintStream et tu le colles en stderr ...
 
allez, en une ligne pour le fun :

Code :
  1. System.setErr(new PrintStream(new OutputStream() { public void write(int b) { tonTextArea.append(new String(new char[(char) b])); }}));


 
si t'as le droit à plus de lignes, c'est quand même mieux de surcharger toutes les méthodes write de l'outputstream ;)
 
 
edit : mais le mieux c'est d'utiliser des vrai produit de log comme le disait dark : log4j, ou le package logging du jdk1.4 (que j'ai toujours pas regardé)


Message édité par benou le 07-12-2003 à 16:56:10

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-12-2003 à 18:23:57    

ha ouais, pas mal, j'y avais pas pensé.
C'est que je suis pas encore habitiué au bons réflexes du java moi.
En tout cas merci à vous 3!
 
edit : orthographe quand tu nous tiens...


Message édité par peak le 07-12-2003 à 18:26:21
Reply

Marsh Posté le 07-12-2003 à 19:28:16    

en meme temps, utiliser de System.err je vois pas trop l'interet si on sait d'avance que l'appli va systematiquement rediriger ça vers un textarea... à moins qu'on veuille capter des erreurs de parties du code independantes et qu'on ne peut modifier... :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 09-12-2003 à 18:38:49    

http://java.sun.com/j2se/1.4.2/doc [...] ng.Object)
 
merde, on est tous bigleux ou quoi ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-12-2003 à 20:51:11    


 :heink:  
 
tu peux préciser le fond de ta pensée ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 09-12-2003 à 20:55:38    

Ben l'adaptation est déjà faite, j'avais gueulé qu'elle y était pas, t'avais fait une bidouille au scotch alors que par hasard je suis tombé dessus.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-12-2003 à 20:55:38   

Reply

Marsh Posté le 09-12-2003 à 20:58:48    

nraynaud a écrit :

Ben l'adaptation est déjà faite, j'avais gueulé qu'elle y était pas, t'avais fait une bidouille au scotch alors que par hasard je suis tombé dessus.


mais ca a rien à voir  :sweat:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed