Je voudrais chaque fois que j'appelle System.out.println pour ajouter à un JTextArea donné, sans avoir à changer tous les appels à System.out.println ... Est-ce possible?Sortie System.out.println vers JTextArea
Merci.
Je voudrais chaque fois que j'appelle System.out.println pour ajouter à un JTextArea donné, sans avoir à changer tous les appels à System.out.println ... Est-ce possible?Sortie System.out.println vers JTextArea
Merci.
Les versions de Java depuis 1.5 ont System.setOut()
ce qui vous permet d'installer votre propre PrintStream
. Il suffit de créer un simple OutputStream
qui ajoute les données qu'il obtient à travers write()
Puis enveloppez-le dans un PrintStream
et installez-le.
Je suppose que vous pourriez potentiellement utiliser une forme de AspectJ pour le faire, mais je pense que cela peut être exagéré. Ce que je ferais cependant est de créer une méthode qui serait à la fois imprimer et ajouter.
public void printAndAppend(String text) {
System.out.println(text);
textArea.append(text);
}
Vous pouvez juste faire une recherche globale et remplacer pour System.out.println
et le remplacer par printAndAppend
qui fonctionnerait, mais je ne veux pas toucher tout ce genre de choses existant .. – Pedro
Je ne pense pas qu'il y ait un moyen simple. J'essaie généralement d'éviter System.out
appels dans mon code pour exactement ce genre de raison. Si vous avez une méthode comme (par exemple) MyUtil.myOutput()
alors vous pouvez faire un seul changement et réacheminer où vous voulez
oui, il est plus pour faire face à des choses de l'héritage que j'ai ici .. Bien sûr, si je le ferais de Stratch, j'utiliserais log4j – Pedro
Eh bien vous pouvez le faire en utilisant la méthode jTextArea.append("Your String")
+1, battu moi –
merci, c'est tout :). – Pedro