2013-02-24 9 views
9

Próbuję utworzyć animację procesu w mojej aplikacji konsolowej. Czy jest możliwe przepisanie poprzednich linii dla tych potrzeb? Wiem o \r, ale działa tylko z bieżącą linią.Czy można przepisać poprzednią linię w konsoli?

Jeśli nie jest to możliwe, w jaki sposób mogę zarchiwizować efekt animacji? Dzięki.

Moja konsola jest standardowym emulatorem terminalu Ubuntu 12.04.


Dzięki @ MrSmith42 Zrobiłem to proste demo, która pokazuje drogę do nadpisania linii:

public class Flush { 
    public static void main(String[] args) { 
     for(int i = 0; i < 5; i++) { 
      System.out.println("**********************************"); 
     } 
     // ESC[5A - cursor up 5 times 
     // \r - cursor return to begin of line 
     // ESC[J - erase to end of screen 
     System.out.print("\033[5A\r\033[J"); 
     for(int i = 0; i < 5; i++) { 
      System.out.println("##################################"); 
     } 
    } 
} 

Odpowiedz

4

To zależy od twojej konsoli. Wiele konsol obsługuje vt100 commands, które umożliwiają np. zmiana położenia kursora lub zmiana koloru tekstu lub tła.

Używam go dużo, aby kolorowe wyjście debugowania w moich programach java do powłoki.

Jeśli link jest martwy użycie tego wyszukiwania google https://www.google.de/search?q=vt100+comands&oq=vt100+comands

+0

mógłbyś wykazać krótkie demo? Moja konsola to standardowy emulator terminalu Ubuntu 12.04. – bsiamionau

+0

Jako prosty test kolorów, wypróbuj 'System.out.println (" Hallo \ 033 [32mgreen \ 033 [0m-text. "]' – MrSmith42

+0

To działa. Dzięki, postaram się zarchiwizować problem z animacją za jego pomocą. +1 – bsiamionau

Powiązane problemy