Redirection du System.out vers JEditorPane
Bonjour,
J'aimerais rediriger le contenu de ma sortie standard vers un JEditorPane.
Lorsque je le fais vers un JTextArea, le résultat est parfait. J'utilise la procédure suivante:
* Création de la classe JTextAreaOutPutStream(JTextArea jta), sous classe de OutputStream
* Puis ensuite redirection au niveau de l'affichage avec
Code:
System.setOut(new PrintStream(un objet de la classe ));
)
Cependant, je veux pas afficher plus que du texte. J'aimerais insérer des tableaux, des hyperliens etc. J'ai donc refait la même démarche , cette-fois ci avec un JEditorPane. Et rien ne s'affiche. Je ne vois pas l'origine de mon problème. J'ai cherché sur le forum en vain... PLEASE, I NEED HELP.
Voici ma classe.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| public class JEditorPaneOutputStream extends OutputStream {
private JEditorPane editeur;// editeur
private StringBuffer texte;// contenu de l'éditeur
/**
*constructeur
*/
public JEditorPaneOutputStream(JEditorPane editeur){
this.editeur = editeur;
texte = new StringBuffer();
}
/**ecrit un tableau de caractère dans le texte représentant le contenu de l'éditeur*/
public void write(byte[] b)throws IOException
{ write(b, 0, b.length); }
public void write(byte[] b, int off, int len) throws IOException{
byte[] bArray = new byte[len];
System.arraycopy(b, off, bArray, 0, len);
texte.append(new String(bArray));
}
/**
* ecrit un caractère dans le string reprénsantant le texte(contenu) de l'eiteur
*
*/
public void write(int b) throws IOException {
texte.append(new String(new byte[] { (byte)b }));
}
} |