Konsolenausgabe umleiten auf Textarea

Was ist denn das Problem?

10:05:54]: Test Ausgabe
[10:05:55]: java.lang.Exception: Fehler
ConsoleTestWin dow$ButtonManager.actionPerformed(ConsoleTestWindo w.java:60)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
Wenn das in der Text-Area ausgeben wird, hast du doch was du möchtest, oder nicht?

MFG

Sascha
 
Aber das ist doch nicht die Konsolenausgabe sondern ein Beispiel Text, den ich statisch eingebaut habe. Wie komme ich an die Konsolenausgabe ran?
 
Na du schreibst einfach den String (Variable), den du auf die Konsole umgeleitet hast, schreibst du auch auf die Textarea oder was ist jetzt das Problem?
 
Dann solltest du mal genauer erklären, was du mit Konsolenausgabe meinst?
Was wird zum Beispiel nicht ausgegeben? Das wird oben nämlich nicht klar. Du sagst da nur, was ausgegeben werden soll.

Du solltest dir auch mal den Link anschauen, den ich dir oben schon mal gepostet hab.

MFG

Sascha
 
Hi, ich wäre sehr dankbar wenn du mir das mal anhand meines quellcodes zeigen könntest, vielen vielen dank!
 
Also es soll so ablaufen. Mein Programm wird gestartet.
wenn nun im weiteren verlauf etwas passiert gibt es wieder eine meldung:

06-04 13:35:04 INFO - Testprogramm - Handler closed

Diese Ausgaben möchte ich nun nicht mehr auf der KOnsole sondern in meine Textarea schreiben. D.h. ich drücke den button und er gibt mir fortlaufend die KOnsolenausgaben (wenn welche vorhanden sind).
Ich hoffe ich konnte das jetzt etwas einleuctender erklären.
 
Zuletzt bearbeitet:
Du kannst das komplette Beispiel so von dir verwenden. Du nimmst nur halt keinen ByteArrayOutputStream, sondern überschreibst eine Methode des PrintStreams.

Wie du diesen überschreiben solltest, siehst du im Beispiel.
Wenn du das so machst, wird alles was dieses Programm an Ausgaben erzeugt in die Text-Area geschrieben.

MFG

Sascha
 
Ich weiß ja nicht, aber etwas Eigentinitiative von dir kann ich auch erwarten. Du musst das ja fast nur noch kopieren.

Das einzige was du anpassen musst, ist der Inhalt der print-Methode. Da musst du nur den Text in deine TextArea setzen. Das wars.

MFG

Sascha
 
Hier trotzdem nochmal ein kleines Beispiel

Code:
import java.awt.BorderLayout;
import java.io.PrintStream;

import javax.swing.JFrame;
import javax.swing.JTextArea;


public class SysOutTextAreaExample
    extends JFrame
{

  public SysOutTextAreaExample()
  {
    setSize(300, 300);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    
    final JTextArea area = new JTextArea();
    
    PrintStream stream = new PrintStream(System.out){
      
      @Override
      public void print(String s)
      {
        area.append(s + "\n");
      }
      
    };
    System.setOut(stream);
    add(area, BorderLayout.CENTER);
  }
  
  public static void main(String[] args)
  {
    new SysOutTextAreaExample().setVisible(true);
    
    System.out.println("test");
    System.out.println("test1");
    System.out.println("test2");
    System.out.println("test3");
  }
}

MFG

Sascha
 
Zurück