Обновление JPanel Canvass от изменения в коллекции

У меня есть наборы агентов (объектов), когда симулятор запускается, каждый агент выполняет метод act(), который обновляет их местоположение в среде (2D Array). Мой paintComponent(Graphics g) переопределяется в другом классе (который в основном перебирает 2D-массив и рисует цвет прямоугольника, соответствующий типу агента).

Но фактическая коллекция находится в классе симулятора, который запускается независимо пользователем, нажимающим кнопку в графическом интерфейсе. Если я помещу метод repaint() в конец paintComponent (Графика g). Он только дважды обновляет запрос JPanel, один раз при запуске приложения и второй раз, когда я нажимаю кнопку запуска, которая запускает симуляцию.

Как сделать так, чтобы JPanel автоматически обновлялся новым изображением, когда все агенты выполняют метод действия. Или, может быть, когда в коллекции произойдет изменение, чтобы агент нарисовал новое место на холсте и удалил старое?

0 ответов

Другие вопросы по тегам