Java изменяет атрибуты форм программно - PullRequest
1 голос
/ 11 сентября 2009

Я хочу создать ряд прямых линий, соединяющих маленькие кружочки. затем я хочу изменить цвет и ширину линий в моей программе. Я думал об использовании Canvas для этого, но, похоже, нет способа получить доступ к отдельным фигурам, нарисованным на холсте, чтобы изменить их атрибуты после рисования. Какой простой способ это реализовать?

Ответы [ 2 ]

2 голосов
/ 11 сентября 2009

Прежде всего, какая версия Java и какой инструментарий пользовательского интерфейса? Холст AWT очень тупой, он даже не «вспомнит», что вы нарисовали; когда вы свернете и восстановите окно, оно отправит событие paint(), потому что оно хочет перекрасить.

Самый простой способ (если вы используете AWT и привязываетесь к Canvas) - это создать список ваших фигур (один список для всех или один для кругов и один для линий или как вам нравится) и создать метод рисования Нарисуй их всех. Затем обновите объекты в вашем списке. Когда вы закончите обновление, вызовите repaint() на вашем холсте, и он снова вызовет paint().

0 голосов
/ 12 сентября 2009

Вы не рисуете фигуры на Canvas, если используете функции Graphics и Graphics2D, такие как drawRect, drawPolygon, drawOval и т. Д. После того, как они нарисованы, они больше не существуют как фигуры. У вас просто есть изображение с заполненными пикселями.

Как сказал Михи, вам, возможно, придется отслеживать фигуры, которые вы пытаетесь нарисовать, а затем восстановить свое изображение, если оно изменится. Возможно, вы также можете «неокрашить» форму, которую вы пытаетесь изменить, закрасив ее цветом фона и перекрасив измененную форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...