Unix менее похожа на прокрутку терминала в Java - PullRequest
0 голосов
/ 05 июня 2011

По умолчанию, если выводится много текста, терминал прокручивается до самой последней строки, а затем пользователь должен прокручивать до конца, чтобы читать сверху.Мне нужен Java-подобный способ реализации прокрутки, предлагаемой в Unix-программе "less".Я хотел бы получить способ вывода большого количества текста, и пользователь сможет начать сверху и прокручивать вниз в своем темпе.

1 Ответ

1 голос
/ 03 августа 2011

Это не реализация Less, но вот идея:

  • Разделите вывод на несколько частей: очень длинная строка => массив коротких строк (~ 10-15 строк);
  • Создание цикла, ожидающего пользовательского ввода для отображения следующей итерации
String s = "blahhh foo.... I'm a very long string, with long lines and
a lot of linebreaks...";

String[] looping = s.split("\n"); // whatever delimiter you need

for(int i = 0 ; i < looping.length ; i++) {
  // print 
  System.out.print(looping[i]);

  // wait for user input
  Scanner scanner = new Scanner(System.in);
  String a =  scanner.nextLine(); 

  // assigne a key to stop the loop before the end
  if(a.equalsIgnoreCase("X") // X, or whatever you want
  break;
}
...