Frage von holybit, 26

Java consolenprogramm optische hilfe?

Hi ich schreibe grad ein programm in java und wollte fragen wie ich folgendes problem gelöst kriege:

Die anwendung soll mir in einem bestimmten intervall einen wert ausgeben diesen soll sie aber nicht neu schreiben sondern der neue wert soll an der position erscheinen wo der alte stand

Mfg holybit

Antwort
von regex9, 18

Du könntest erst jeglichen Inhalt löschen, der in der Konsole ausgegeben wurde und dann neu schreiben.

Um den Output in der Konsole zu löschen, könntest du folgende Lösungen nutzen:

  • Nutze Befehle, die das Betriebssystem zur Verfügung stellt, wie bei Windows: Runtime.getRuntime().exec("cls");
  • Nutze den Backspace-Character \b so lange, bis alle vorhergehenden Zeichen entfernt wurden
Kommentar von holybit ,

gibt es keine elegantere lösung? das siehst du ja wenn du hochscrollst und auserdem befürchte ich das alles leicht flackert es soll ja nur 1 wert ersetztwerden immerwieder

Kommentar von regex9 ,

Bei einem Konsolenprogramm gibt es keine andere Lösung, denn die Konsole ist ein eigenes Programm, welches seine Daten nur über den Ausgabestream bekommt. Das, was du in den Stream schiebst, kannst du nicht einfach wieder rückgängig machen.

Hättest du eine richtige GUI mit Komponenten etc., könntest du das Observer-Pattern nutzen.

Kommentar von holybit ,

und es ist für linux gedacht ich sehe das bei vielen anderen programmen aber ich hab keine ahnung wie das geht

Kommentar von holybit ,

:D ich könnte doch auch carriage return machen (hab ich jetzt vom kumpel erfahren) so etwa meint er System.out.print("text beispiel\r"); in einer schleife und er springt nach jeder ausgabe zum zeilenanfang

Kommentar von regex9 ,

Ja, das geht auch, wird allerdings nicht von jeder Konsolenanwendung erkannt (z.B. in Eclipse).

Keine passende Antwort gefunden?

Fragen Sie die Community