/ / java змінює атрибути фігур програмно - java, графіка

java змінюється атрибути форм програмно - java, graphics

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

Відповіді:

2 для відповіді № 1

Перш за все, яка версія Java та який інструментарій інтерфейсу? Полотно AWT дуже німе, воно навіть не "запам'ятає" те, що ви намалювали; коли ви мінімізуєте та відновите вікно, воно надішле paint() подія, оскільки вона хоче бути перефарбована.

Найпростіший спосіб (якщо ви використовуєте AWT і застряглина Canvas) - це скласти список своїх фігур (або один список для всіх, або список для кіл, і один для ліній, або все, що вам подобається) і зробити ваш метод фарби намалювати їх усі. Потім оновіть об’єкти у своєму списку. Коли ви закінчите оновлення, дзвоніть repaint() на вашому полотні, і воно зателефонує paint() для тебе знову.


0 для відповіді № 2

Ви не малюєте фігури на полотні, якщо ви зновувикористовуючи функції Graphics and Graphics2D, такі як drawRect, drawPolygon, drawOval і т. д. Після їх малювання вони більше не існують як фігури. У вас просто зображення із заповненими пікселями.

Як сказав Міхі, вам, можливо, доведеться слідкувати за цимформи, які ви намагаєтеся намалювати, потім регенеруйте своє зображення, якщо воно змінюється. Можливо, ви також можете "розфарбувати" форму, яку намагаєтесь змінити, фарбуючи її у фоновий колір та перефарбовуючи змінену форму.