Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать выделение области на картинке? 
:(
    Опции темы
man_without_face
Дата 16.4.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 1.4.2008

Репутация: нет
Всего: 1



Фрейм. На нём несколько панелей. В одну из панелей грузится картинка. Некоторые области картинки покрываются сверху квадратами (используя Rectangle2D), для обозначения определённый областей. Каким образом можно сделать так, чтобы можно было выделять эти квадраты? Ну т.е. грубо говоря когда видишь в проводнике файлы и папки, то можешь их выделить - появляется синий прямоугольник, который тянется за курсором и при отпускании - всё, что попало в эту область выделяется. Как сделать такое же, но для моей ситуации?
PM MAIL   Вверх
bluecat
Дата 16.4.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



Отслеживать события мыши, анализировать, смотреть какие квадраты попадают в выделенную область (геометрическая задача), а потом все это дело соотв. образом отображать в методе paint(Graphics g), в котором вы  все и рисуете.


PM MAIL   Вверх
Reptor
Дата 16.4.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 1
Всего: 0



Цитата

 смотреть какие квадраты попадают в выделенную область (геометрическая задача)


И вроде даже это можно проще сделать: квадраты определить как 
Rectangle kv =  new Rectangle(100,100,100,100);

вот а у него есть метод 

kv.contains(e.getX(), e.getY())  где координаты будеш брать с обработчиков мышки. Вот и этим и опредиляется пренадлежит ли точка которая в области твоему квадрату. А точка это будет любой угол области которую ты растягиваеш.



PM MAIL ICQ   Вверх
bluecat
Дата 16.4.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.2.2008

Репутация: нет
Всего: нет



Цитата

вот а у него есть метод 

kv.contains(e.getX(), e.getY())  где координаты будеш брать с обработчиков мышки. Вот и этим и опредиляется пренадлежит ли точка которая в области твоему квадрату. А точка это будет любой угол области которую ты растягиваеш.



угу, согласен.
ну, правда если много квадратиков, то это, наверно, будет не совсем эффективно - проверять каждое событие мыши на каждом квадрате... Хотя я думаю, что это мелочи по сравнению с тем, что при это надо еще и выделенную область при каждом движении мыши отрисовывать. 
PM MAIL   Вверх
Reptor
Дата 16.4.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 1
Всего: 0



ну собственно можно ещё и использовать intersects -  это будет пересечения квадрата и выделеной области.

А прорисовка будет к примеру на событии mouseDragged - там будет вызываться метод repaint() вот и в нём будет рисоваться динамически область которая выделяется.
PM MAIL ICQ   Вверх
man_without_face
Дата 17.4.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 1.4.2008

Репутация: нет
Всего: 1



хмммм.... точно! надо было просто подумать хорошо. 

кстати всего 1200 квадратов. Поле 40x30. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.