Как показать текст таймера в той же строке в java eclipse - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу показать таймер в выводе java eclipse. Я успешно реализовал функцию, но проблема в том, что после каждой секунды таймер печатает в новой строке, но я хочу заменить текст каждой секунды в той же строке. Например, мой i вводит 12 секунд, поэтому вывод будет выглядеть как

11
10
9
8
7
6
5
4
3
2
1
0

Я хочу показать второе изменение в той же строке. Это мой код

public class Stopwatch {
static int interval;
static Timer timer;

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Input seconds => : ");
    String secs = sc.nextLine();
    int delay = 1000;
    int period = 1000;
    timer = new Timer();
    interval = Integer.parseInt(secs);
    System.out.println(secs);
    timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            System.out.println(setInterval());

        }
    }, delay, period);
}

private static final int setInterval() {
    if (interval == 1)
        timer.cancel();
    return --interval;
}
}

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Вы можете попробовать сначала распечатать символ '\ r' согласно this . Также не используйте println (), а метод print ():

...
public void run() {
     System.out.print('\r');
     System.out.print(setInterval()); 
}
...
0 голосов
/ 04 ноября 2019

Консоль - это LOG-инструмент, его нельзя очистить с помощью кода. Вы можете щелкнуть правой кнопкой мыши консоль и выбрать очистить вручную.

...