Я пытаюсь создать сортировочный визуализатор, используя Java GUI. Проблема, с которой я сталкиваюсь, заключается в обновлении GUI в режиме реального времени. Например, когда я перетасовываю исходный массив, я вызываю следующие методы shuffle и swap. Я ожидаю, что он перекрасит GUI, а затем сделает это снова с задержкой, но вместо этого все, что он делает, это fini sh, затем метод shuffleArray перерисовывает все сразу, без «анимации». Что может быть лучше?
public void shuffleArray() {
final int milliDelay = 1000;
for (int i = NUM_BARS - 1; i >= 0; i--) {
int rand = (int) (Math.random() * i);
swap(i,rand, milliDelay);
}
}
public void swap(int firstIndex, int secondIndex, int delay) {
Timer timer = new Timer(delay, e -> {
int temp = data[firstIndex];
data[firstIndex] = data[secondIndex];
data[secondIndex] = temp;
barColors[firstIndex] = Color.RED;
barColors[secondIndex] = Color.RED;
repaint();
barColors[firstIndex] = Color.WHITE;
barColors[secondIndex] = Color.WHITE;
});
timer.setRepeats(false);
timer.start();
}