У меня была проблема с JComponent в моей библиотеке, и я нашел решение с таймером свинга, я сообщил java описание таймера
В общем, мы рекомендуем использовать таймеры Swing, а не таймеры общего назначения для задач, связанных с GUI, поскольку все таймеры Swing совместно используют один и тот же ранее существующий поток таймеров, а задача, связанная с GUI, автоматически выполняется в потоке отправки событий. Однако вы можете использовать таймер общего назначения, если вы не планируете касаться GUI с таймера или вам требуется длительная обработка.
Вы можете использовать таймеры Swing двумя способами:
- Чтобы выполнить задачу один раз, после задержки. Например, менеджер подсказок инструментов использует таймеры Swing, чтобы определить, когда показывать подсказку, а когда скрывать ее.
- Для повторного выполнения задачи. Например, вы можете выполнить анимацию или обновить компонент, отображающий прогресс в достижении цели.
Я думаю, что вы находитесь в одном из этих случаев.
Без минимального воспроизводимого примера я могу использовать мой код.
Вы должны создать прослушиватель действий Swing, например:
public class UpdateComponentListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
count += 10;
timeLabel.setText(count + "");
//The label call repaint
//in your app you should be call the repaint
//In your cases
/*
matrix = calculateNextMatrix(); //Calculate possible movements, deaths or births of dots
myGraphic.updateMatrix(matrix); //Pass new dots to the JPanel object
myGraphic.repaint();
*/
}
}
Конструктор таймера входит в введите delay и прослушиватель действий, чтобы вы могли построить свой таймер с помощью этого кода:
Timer timer = new Timer(1000, new UpdateComponentListener());
timer.start();
Вы можете остановить, перезапустить свой таймер, поэтому вы должны установить, насколько правильно таймер.
Пример GUI:
![enter image description here](https://i.stack.imgur.com/O4AoA.gif)
Я написал сообщение и после того, как увидел комментарий @camickr. Я отправляю ответ, потому что моя работа закончена, но комментарий ответил на ваш вопрос.
Я надеюсь, что придется построить пример еды