OutputStream zum Zweiten

  • Ersteller Ersteller karlmosh
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
K

karlmosh

Hallo Leute,
ich habe mal wieder eine Frage zu dem OutputStream der Klasse System.

Ich habe eine Swing-Anwendung geschrieben und will, dass alles was per System.out.println() eigentlich auf der Konsole ausgegeben würde, auch/nur in einem jTextArea-Dialog-Element erscheint. Bin nur noch nicht durchgestiegen wie das am besten geht.

Mit

Code:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

kann ich den Text der auf der Konsole erscheint auslesen, brauch ich dann irgendwie einen Thread, der in einer Endlosschleife den BufferedReader ausliest?
Zirca so:
Code:
public void setBufferedReader(BufferedReader br) throws IOException
{
String string=br.readLine();
while(string!=null)
{
jTextArea1.append(string);
jTextArea1.append("\n");
string=br.readLine();
}
}

Gruß und danke für etwaige Hinweise ;)
 
Mit

Code:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

kann ich den Text der auf der Konsole erscheint auslesen
Nicht wirklich, sondern nur den Text, den der Benutzer in die Konsole eingibt.

Das heißt, das
Code:
while(string!=null)
{
jTextArea1.append(string);
jTextArea1.append("\n");
string=br.readLine();
}
ist tatsächlich eine Endlosschleife. Du kannst es ja ausprobieren, du wirst auf der Konsole unendlich lange / oft was eintippen können. null wird es nie, weil mindestens "\n" dabei ist, wenn man Enter drückt.


Ich [...] will, dass alles was per System.out.println() eigentlich auf der Konsole ausgegeben würde, auch/nur in einem jTextArea-Dialog-Element erscheint.

Du entscheidest doch selbst, was du mit System.out.println() ausgibst. :confused:
Das heißt, wenn bei dir "System.out.println(irgendwas)" steht, dann machste halt noch / nur "jTextArea1.append(irgendwas)".

Wo ist denn das Problem?
 
Um es allgemeiner zu formulieren:

Ich will ein Programm schreiben, das einerseits auf der Konsole ausgeführt werden kann (ohne GUI) und andererseits mit GUI, also etwas mehr Komfort.

Dafür suche ich nach einer Möglichkeit, das, was ich im Konsolenbasierten Modus auf der Konsole per System.out.println() ausgebe auch im GUI-Modus direkt in der GUI ausgeben kann. Dafür möchte ich aber auch die System.out.println()-Methode nutzen.

System.out.println("TEXT") -> auf der Konsole und in der GUI "TEXT" ausgeben.

Habe jetzt ein Workaround ... aber theoretische müsste es doch möglich sein?
 
Ich würde einfach eine eigene Methode schreiben, etwa so:
Code:
public void print(String s) {
if(gui) {
// In Textarea schreiben
}
else {
System.out.println(s);
}
}
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Zurück
Oben Unten