Czy istnieje opcja wyczyszczenia ekranu w java jako clrscr() w C.Opcja jasnego ekranu w java
Odpowiedz
Jak brudne sztuczki iść, lubię rozwiązanie msparer użytkownika. Jeszcze bardziej brudna metoda, którą widziałem, używana (nigdy bym tego nie zrobiła, przysięgam, naprawdę.) Jest napisanie paczki nowych linii do konsoli. Nie powoduje to wyczyszczenia ekranu, ale tworzy iluzję wyraźnego ekranu dla użytkownika.
char c = '\n';
int length = 25;
char[] chars = new char[length];
Arrays.fill(chars, c);
System.out.print(String.valueOf(chars));
Nie odważyłem się napisać tę odpowiedź w dół. Nice :-) – LB40
@LB: Przyznaję, że jest to prawdopodobnie * najgorszy * sposób na zrobienie tego. Czasami po prostu musisz podzielić się swoimi WTF. :) –
Jak to jest inne niż 'System.out.print ("\ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n n \ n ");' co oznacza jedną linię zamiast pięciu? – Tenner
Jeśli mówisz o konsoli, to nie. Zapisywanie na konsoli jest tylko specjalnym przypadkiem strumienia wyjściowego. Strumienie wyjściowe nie wiedzą nic o ekranie, ponieważ mogą być równie łatwo przekierowane do pliku lub innego urządzenia systemowego.
Jeśli mówisz o aplikacji konsoli, to nie ma wyraźnej opcji ekranu AFAIK. A dość brudna opcja to wywołanie polecenia "clear screen" bazowego systemu operacyjnego.
Wtedy to coś
Runtime.getRuntime().exec("cls");
dla Windows lub
Runtime.getRuntime().exec("clear");
dla obciążenia innego systemu operacyjnego. Możesz dowiedzieć się, OS z System.getProperty("os.name")
.
'dirty' very' dirty': D –
to nie działa. próbowałem w systemie Windows XP. – user161004
Myślę, że 'cls' jest wbudowaną funkcją, a nie rzeczywistym plikiem wykonywalnym. –
W przypadku systemu Windows projekt Java Console API zapewnia funkcję określania wielkości konsoli i ustawiania pozycji kursora. Czyszczenie ekranu jest trywialne. Jest to wersja 0.2, więc nie jest to dokładnie produkcja gotowa, ale działa.
Alternatywnie możesz po prostu wydrukować kilka nowych linii przez System.out.println()
. 640 powinno wystarczyć każdemu :-) To nie jest to samo, co czyszczenie ekranu, ale z intencją użytkownika i jego celami.
Dla każdej konsoli obsługującej znaki kontrolne ANSI następowałaby praca (mogłaby np. Działać na konsoli Win98).
private final String ANSI_CLS = "\u001b[2J";
....
System.out.print(ANSI_CLS);
System.out.flush();
...
Wychodząc z Win NT nie będą już działać i można albo
- Czy wywołanie JNI (np jak tutaj: Java: Clear console and control attributes
- Albo napisać kilka pustych linii
Inaczej jesteś pecha.
I btw. należy pamiętać, że System.out
i System.err
nie muszą być konsolami, w których można ustawić dowolne (np. Zapisanie w pliku) przypadek, w którym czyszczenie ekranu nie miałoby żadnego sensu.
+1 Niesamowita poprawna odpowiedź. –
powinieneś spróbować z JNA i spróbuj mapowanie natywne biblioteki:
- w systemie Linux należy odwzorować funkcje C ncurses bibliotecznych
- na oknach należy odwzorować funkcje zarówno MSVCRT i Kernel32, jak wyraźnie zaznaczono here
PS
daj mi wiadomo, czy trzeba przykładowy kod
Jansi jest doskonałym obejście. Jestem programistą amatorskim, a Jansi jest łatwy w konfiguracji, szczególnie w Eclipse.
Poniżej znajduje się link do strony głównej Jansi:
Poniżej znajduje się link do strony zawierającej kod jako demonstracja klasy AnsiConsole zawartych w pakiecie Jansi:
Aby wyczyścić ekran po prostu wpisać:
System.out.print('\u000C');
Nie działa dla mnie na Windows – paullb
Można także spróbować ANSI Ucieczka Kody:
Jeśli twój terminal wspierać je, spróbuj coś takiego:
System.out.print("\033[2J\033[1;1H");
Możesz dołączyć \0333[1;1H
być pewien, czy \0333[2J
nie przesuwa kursor w lewym górnym lewy róg.
Dokładniej:
033
jest ósemkowa zESC
2J
jest oczyszczenie całej konsoli/ekranu terminala1;1H
przemieszcza kursor do rzędu 1 i kolumny 1
Jest to jedyne rozwiązanie ANSI, które konsekwentnie działa w moim terminalu linuksowym. Zwłaszcza przesunięcie kursora na końcu sprawia, że wygląda ładnie i czysto. Ponadto respektuje wielkość (wysokość) okna. –
- 1. Opcja Java -classpath
- 2. Zmiana rozdzielczości ekranu Java
- 3. Szybkie przechwytywanie ekranu Java
- 4. Pamięć podręczna kolb, odpowiednik delete_memoized dla jasnego
- 5. Jak wgrać obraz z obrazkiem bootstrapu Jasnego?
- 6. Opcja Emulacja ekranu dotykowego jest niedostępna, emulacja urządzenia nie zapewnia odpowiedzi ekranu dotykowego
- 7. file.separator Opcja Java 7 powoduje wyjątek ExceptionInitializerError
- 8. Obsługa mrówek dla java 9 addmods opcja
- 9. Jak wymusić użycie jasnego motywu w systemie Windows Phone 7?
- 10. Java Swing na wysokim DPI ekranu
- 11. Jak wykryć rotację ekranu?
- 12. Przechwytywanie ekranu apletu Java do wideo
- 13. -statyczna opcja dla gcc?
- 14. Opcja maxDate w datepicker
- 15. Udostępnianie ekranu w czasie rzeczywistym do aplikacji Java (localhost)
- 16. Opcja sekwencyjna kontenera SSIS Opcja transakcji
- 17. Co to jest opcja w opcji GCC „-Wl opcja”
- 18. Nierozpoznana opcja: - Nie można utworzyć wirtualnej maszyny Java
- 19. Opcja kursywą
- 20. Eclipse JUnit '-EA' Opcja VM
- 21. Opcja DHCP w Qt/C++
- 22. Opcja Xframe w tomcat 7
- 23. Nakładka ekranu do zrzutu ekranu
- 24. ekranu tylko część ekranu - Swift
- 25. Zrzut ekranu w Haskell?
- 26. Przeładowanie ekranu w Corona
- 27. Czyszczenie ekranu w IPython
- 28. Podział ekranu w LibGDX
- 29. Rozmycie ekranu w LibGDX
- 30. Java: zawartość wydruk z pliku tekstowego do ekranu
Wyczyść * jaki * ekran? Czy mówisz o aplikacji konsolowej? –
tak o aplikacji konsoli – user161004