Доброго дня, коллеги.
Есть один код, который выводит в консоль таблицу случайных булевых значений.
Все бы ничего, но мне нужно, чтобы значения не выводились потоком, одно за другим, а изменялись в реальном времени.
Те по аналогии с часами в консоли: время должно не писаться в новой строке с каждой новой секундой, а должно находиться, и обновляться в изначальной.
boolean[][] dots = new boolean[5][5];
Random randomBoolean = new Random();
//Now i want to create a table with random boolean values
//Eternal loop
for (;;) {
try {
Thread.sleep(500);
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
dots[i][j] = randomBoolean.nextBoolean();
System.out.print(dots[i][j] + "\t");
}
//Close the column
System.out.println();
}
System.out.println();
}
catch (InterruptedException e)
{
}
}
Что и куда мне нужно для этого добавить?
Спасибо
Ответ
Сама Java очищать консоль не умеет. Но есть небольшая библиотечка, позволяющая отправлять управляющие последовательности в любую ANSI-совместимую консоль - Jansi
import java.util.Random;
import org.fusesource.jansi.AnsiConsole;
public class Main {
public static void main(String[] args) {
AnsiConsole.systemInstall();
Random randomBoolean = new Random();
for (;;) {
System.out.print("\u001b[2J");
System.out.flush();
try {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(randomBoolean.nextBoolean() + "\t");
}
System.out.println();
}
System.out.println();
Thread.sleep(500);
}
catch (InterruptedException e) {}
}
}
}
Комментариев нет:
Отправить комментарий