Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
1

Рисование компонентов - управлять перекрытием фигур

08.05.2014, 21:06. Показов 1350. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И так есть ситуация:
Класс Shape имет подклассы Rect, Circle и подобные для рисования фигур.
Класс Instrument имеет подклассы Brush, Eraser и т.п.
В методе paintComponent(Graphics g) рисуются все фигуры. Ну и само собой, не забываем, что перерисовуются уже имеющиеся. Выглядит так:
Java
1
2
3
4
paintComponent(Graphics g) {
//нарисовались Shape
//нарисовались Instrument
}
И вот проблема в том, что каждая последняя Shape будет всегда перекрыта старым Instrument. Как можно решить эту ситуацию, чтобы все перерисовывалось в правильной последовательности? Учитывайте условия, что в paintComponent проверяются Instrument и Shape на null и каждая фигура записывается в Stack или ArrayList (не важно куда).
Примечание:
Нет смысла объединять Shape и Instrument в один, потому что они имеют различный интерфейс.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2014, 21:06
Ответы с готовыми решениями:

Рисование фигур в Swing
Привет всем, кто знает как реализовать данную задачку? Разработать графическое приложение,...

Рисование фигур
написать программу которая спрашивает у пользователя какую фигуру надо нарисовать: 1 -...

Рисование фигур
Сделал пример с книги, должен по идее рисоваться круг и результат быть такой, как в книге: ...

Рисование фигур!
Всем привет! подскажите пожалуйста, как нарисовать несколько фигур в билдере, расположение которых...

5
37 / 37 / 25
Регистрация: 19.11.2012
Сообщений: 197
08.05.2014, 23:49 2
Поменяйте местами отрисовку Instrument и Shape
0
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
08.05.2014, 23:52  [ТС] 3
EagleAlex, и тогда объекты Shape всегда будут перекрывать Instrument...
0
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
08.05.2014, 23:58  [ТС] 4
Смотрите прикрепление. Прямоугольник был нарисован после кисти.
Миниатюры
Рисование компонентов - управлять перекрытием фигур  
0
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
10.05.2014, 10:13  [ТС] 5
Решение найдено:
Добавляю после каждого рисования объекты Instrument и Shape в новый стек, откуда потом в правильном порядке рисуются элементы.
Тему можно закрывать.
0
126 / 113 / 56
Регистрация: 05.12.2012
Сообщений: 463
11.05.2014, 14:34 6
Может я не в тему, но:
Задача похожа на некоторое подобие рисовалки, и не проще ли просто убрать перерисовку, например, а просто добавлять уже новые фигурки на уже имеющиеся?..

Java
1
2
3
4
@Override
public void update(Graphics g){
    paint(g);
}
ну или по-хорошему сначала на BufferedImage рисовать, а потом его на панель.
0
11.05.2014, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2014, 14:34
Помогаю со студенческими работами здесь

Рисование фигур
Разобрался как нарисовать фигу, но как сделать когда зажал кнопку мыши то появляется контур этой...

Рисование фигур
Программа вывода прямоугольного треугольника заполненного звездочками с вершиной N с использование...

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

Рисование фигур
Я реализовал рисование прямоугольника и эллипса таким способом, как в пэинте (при нажатии и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru