Как я могу «стереть» то, что нарисовал на Java Graphics2D Canvas, не удаляя то, что за этим стоит? - PullRequest
0 голосов
/ 29 марта 2019

Я пишу программу, которая рисует определенный график (на основе параметров, заданных через JSlider) в системе координат. У меня проблема в том, что моя система координат также нарисована на этом холсте, и если бы я использовал метод «clearRect», он удалил бы оба графика, от которых я хочу избавиться, чтобы нарисовать новый, когда JSlider обновляет, а также систему координат. Есть ли способ "заблокировать" систему координат, чтобы она не удалялась или что-то в этом роде?

1 Ответ

0 голосов
/ 29 марта 2019

Не рисуй прямо на холсте.Создайте список объектов, таких как система координат и объекты.Вы можете манипулировать списком (добавлять или удалять объекты) и repaint canvas, когда что-то меняется.

Каждый объект в списке может реализовывать интерфейс Drawable с помощью метода say draw ().Таким образом, список будет List<Drawable>.На холсте paint() пройдитесь по всем объектам и вызовите draw ().

...