Nachricht von Console auf Screen wiedergeben

Status
Nicht offen für weitere Antworten.

steve77

Bekanntes Mitglied
Hallo leute,

also ich hoffe ich kann meine problematik vernünftig erklären. Geht los: Ich habe ein Programm, dass mir auf der Console von z.B. Eclipse nachrichten ausgibt (hierzu zählen warnings, infos's usw.) Diese Nachrichten möchte ich nun aber in einem (schon erstellten) Screen darstellen lassen, per Knopfdruck sozusagen. Ich weiss aber nicht wie ich das anstellen kann? Oder anders ausgedrückt, wie kann ich auf die nachrichten die auf der console dargestellt werden, zugreifen?Für hilfe wäre ich sehr dankbar,


Gruß
stefan
 

The_S

Top Contributor
Du kannst den OutputStream der Klasse System umleiten

Code:
System.setOut = yourStream;
 

steve77

Bekanntes Mitglied
Das ist nämlich mein größtes problem, ich weiss nicht wo die Consolennachrichten stehen, in welcher Klasse? Es ist so, dass es mehrere Klassen gibt, die nachrichten ausgeben! Ich möchte nun alle nachrichten entweder in eine datei schreiben oder auf einem screen darstellen!
 

The_S

Top Contributor
Alle Ausgaben die über System.out.X getätigt wurden (egal in welcher Klasse), werden auf deinen neuen PrintStream umgeleitet. Alles klar?
 

The_S

Top Contributor
verständlicher oder klar? Wenn du noch was brauchst (Code-technisch was nicht mehr als 20 Zeilen sind ;) ), sag bescheid.
 

steve77

Bekanntes Mitglied
Wäre echt supi, wenn du mir das einmal kurz quellcodetechnisch darstellen könntest. Theroretisch habe ich das , denke ich verstanden.
 

The_S

Top Contributor
Naja, erstmal brauchst du einen eigenen Outputstream, der die bytes auf deinem "Screen" ausgibt (den musst du aber schön selber programmieren, einfach von OutputStream erben und die write(int b)-Methode nach deinen Wünschen überschreiben). Und dann einfach folgendes:

Code:
ScreenOutputStream sos = new ScreenOutputStream(screen);
System.setOut(new PrintStream(sos));
 

steve77

Bekanntes Mitglied
Leider funktioniert es noch nicht so wie es soll. Es sieht nun folgendermassen aus:


Code:
public void actionPerformed(ActionEvent e) {

	try {    
                            //Ausgabe des Datums und der Uhrzeit
                             SimpleDateFormat sdf = new SimpleDateFormat("[hh:mm:ss]");
				buffer.append(sdf.format(new Date()));
				buffer.append(" : ");
				buffer.append(new String(baos.toByteArray()));
				buffer.append("\n");
				textArea.append(buffer.toString());
				baos.reset();

                            //Verbindung von Eingabe- und AusgabeStrom
                            PipedInputStream pis = new PipedInputStream();
	            PipedOutputStream pos = new PipedOutputStream(pis);
				
	            System.setOut(new PrintStream(pos));
					
}


} catch (Exception ex) {
ex.printStackTrace();
		}

Der obere Teil funktioniert (Datum und Zeit), leider funktioniert das untere noch nicht, es sollen ja auch die Nachrichten ausgegeben werden. Woran kann das liegen?
 

The_S

Top Contributor
Hat es irgendeinen besonderen Grund warum du einen PipedInput- und einen PipedOutputStream verwendest, mit denen du nirgendwo sonst noch etwas machst (außer als Standard Ausgabe setzen) ???:L !?
 

steve77

Bekanntes Mitglied
Jo, es kommen mehrere Nachrichtigen von verschiedenen Klassen an, deshalb verwende ich einen pipedInput(out)Stream. Ich hatte gelesen, das man eine pipe für die kommunikation zwischen mehreren threads verwendet und das trifft in meinem beispiel ja zu.
 

The_S

Top Contributor
naja, ich kenn deinen kompletten Code zwar nicht, aber so wie ich das sehe brauchst du hier definitiv keine PipedStreams.

Du musst natürlich auch irgendwo dafür sorgen, dass dein Stream in das TextArea schreibt. Wenn du nirgends definierst, wohin die Ausgabe kommen soll, dann weiß dass dein Stream/Textfeld auch nicht von Zauberhand :p
 

steve77

Bekanntes Mitglied
das hört sich logisch an ;-) Die textarea heisst, "textarea". Wie muss das dann aussehen (sorry für die dumme frage, bin aber irgendwie schon den ganzen tag dabei, hab sozusagen ein brett vor dem kopf...).

Code:
textArea.set.....
 

The_S

Top Contributor
So gar nicht. Du brauchst wie gesagt einen eigenen OutputStream (also eine Klasse extends OutputStream) in der du die write Methode überschreibst. Dieser Klasse übergibst du z. B. im Konstruktor deine TextArea. Und in der write-Methode deines OutputStreams schreibst du dann die bytes in die TextArea.

Beispiel (ungetestet und nur hier im Forum geschrieben):

Code:
public class TextAreaOutputStream extends OutputStream {

   private JTextArea area = null;

   public TextAreaOutputStream(JTextArea area) {
      this.area = area;
   }

   public void write(int b) {
      area.append((char)b);
   }
}
 

steve77

Bekanntes Mitglied
jo, super vielen dank für dieine hilfe, werd noch einwenig rumprobieren und gleich ne pause einlegen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Nachricht von Console auf Screen wiedergeben die zweite:-) Java Basics - Anfänger-Themen 7
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
J Nachricht an OutputStream Java Basics - Anfänger-Themen 2
G produzieren einer Nachricht ins kafka topic Java Basics - Anfänger-Themen 6
R Serialport auslesen bei neuer Nachricht Java Basics - Anfänger-Themen 12
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
E Nachricht einer Exception ändern Java Basics - Anfänger-Themen 4
S Bitte Ratschläge für Console-MenuFührung... Java Basics - Anfänger-Themen 20
K Wie kann ich "enter" von der Console in Eclipse löschen? Java Basics - Anfänger-Themen 2
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
C das Doppelte des Wertes in der Console ausgeben Java Basics - Anfänger-Themen 10
iman Console Java Basics - Anfänger-Themen 17
T '>' vor Console input Java Basics - Anfänger-Themen 3
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
F Console command unter Linux Java Basics - Anfänger-Themen 7
O Methoden 3 Methoden gleichzeitig laufen lassen in der Console Java Basics - Anfänger-Themen 2
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
J Hintergrundsound in der CMD Console, wie? Java Basics - Anfänger-Themen 14
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
P Erste Schritte Console - Sehr komische Ausgabe! Java Basics - Anfänger-Themen 3
K Klasse console.InputHelper.readString() nicht utzbar Java Basics - Anfänger-Themen 3
B Console Beschreibung Java Basics - Anfänger-Themen 1
C Hilfe für Kommentar-Zapper gesucht / Umgang mit Console Java Basics - Anfänger-Themen 0
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
O Einlesen einer Matrix von der Console Java Basics - Anfänger-Themen 18
G UnsatisfiedLinkError erscheint nur über Console Java Basics - Anfänger-Themen 6
J Zusätzliche Console Öffnen Java Basics - Anfänger-Themen 6
G 3422 Zeilen in Eclipse Console Java Basics - Anfänger-Themen 5
P Progressbar auf der Console Java Basics - Anfänger-Themen 12
H Input/Output Console löschen und Eingaben in Echtzeit Java Basics - Anfänger-Themen 3
S Erste Schritte Ausgabe in der Console "ändern" Java Basics - Anfänger-Themen 4
T Input/Output Scanner Eingaben auf Console farbig darstellen, wie? Java Basics - Anfänger-Themen 13
IngoF wie kann man die Console nachträglich öffnen? Java Basics - Anfänger-Themen 6
J Eclipse Console Ausgaben Abfangen Java Basics - Anfänger-Themen 2
N Zeile in Console einlesen Java Basics - Anfänger-Themen 3
B Limit console output in Eclipse Java Basics - Anfänger-Themen 6
S Elemente eines Arrays in Console eingeben Java Basics - Anfänger-Themen 5
C Packet inout.Console Java Basics - Anfänger-Themen 3
Y System.console() liefert immer null zurück. Java Basics - Anfänger-Themen 6
H Windows Console Ausgabe ? Java Basics - Anfänger-Themen 3
P Telefonbuch (Console) Java Basics - Anfänger-Themen 8
N Ausgabe Problem System.console().printf() Java Basics - Anfänger-Themen 6
J I/O - Console Java Basics - Anfänger-Themen 7
D User - Interface über die Console Java Basics - Anfänger-Themen 14
K Datein auf der Console anzeigen lassen ? Java Basics - Anfänger-Themen 4
K fehler mit der Befehl Console Java Basics - Anfänger-Themen 3
G Klasse "Console" Java Basics - Anfänger-Themen 4
K javadoc eigenes doclet in console starten Java Basics - Anfänger-Themen 3
S Ausgabe auf der Java-Console (Java Problem) Java Basics - Anfänger-Themen 13
G Java Console clear && Methode erstellen && P Java Basics - Anfänger-Themen 6
G Von der Console einlesen Java Basics - Anfänger-Themen 5
C Alle Zeichen, die in der Console sind in Textdatei Java Basics - Anfänger-Themen 12
S syso ohne console Java Basics - Anfänger-Themen 6
A Ein TextFeld als mit Echtzeitausgabe? (Wie bei der Console) Java Basics - Anfänger-Themen 3
Blackmore XML in Console ausgeben Java Basics - Anfänger-Themen 13
M .jar in Console öffnen? Java Basics - Anfänger-Themen 19
D Thread und Process Kommunikation bei eigener Console Java Basics - Anfänger-Themen 2
A Javaprogramm kann nicht in der Console ausgeführt werden Java Basics - Anfänger-Themen 12
G Eigene Console mit Java Java Basics - Anfänger-Themen 2
Z Eingabe in Console als Variable Java Basics - Anfänger-Themen 10
I Console will nicht Java Basics - Anfänger-Themen 10
J Variablen in die Console mit Eclipse Java Basics - Anfänger-Themen 3
I Farben bei der Console Java Basics - Anfänger-Themen 2
M unauffindbarer Fehler Console, aber unter Eclipse gehts. =( Java Basics - Anfänger-Themen 6
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
J CMD Screen per Java clearen, wie? Java Basics - Anfänger-Themen 2
P Login und Register screen Java Basics - Anfänger-Themen 5
D Screen Capture Programm - Ausschnitte auswählen Java Basics - Anfänger-Themen 5
S Pixel auf Screen setzen Java Basics - Anfänger-Themen 4
D Hilfe mit Full Screen Java Basics - Anfänger-Themen 25
D Frame in Center Screen Java Basics - Anfänger-Themen 7
F Screen (); Java Basics - Anfänger-Themen 2
K java syntax: wofür steht super(screen)? Java Basics - Anfänger-Themen 5
H Clear Screen <--? Java Basics - Anfänger-Themen 3
E clear screen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben