Обновление JPanel Canvass от изменения в коллекции
У меня есть наборы агентов (объектов), когда симулятор запускается, каждый агент выполняет метод act(), который обновляет их местоположение в среде (2D Array). Мой paintComponent(Graphics g) переопределяется в другом классе (который в основном перебирает 2D-массив и рисует цвет прямоугольника, соответствующий типу агента).
Но фактическая коллекция находится в классе симулятора, который запускается независимо пользователем, нажимающим кнопку в графическом интерфейсе. Если я помещу метод repaint() в конец paintComponent (Графика g). Он только дважды обновляет запрос JPanel, один раз при запуске приложения и второй раз, когда я нажимаю кнопку запуска, которая запускает симуляцию.
Как сделать так, чтобы JPanel автоматически обновлялся новым изображением, когда все агенты выполняют метод действия. Или, может быть, когда в коллекции произойдет изменение, чтобы агент нарисовал новое место на холсте и удалил старое?