![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Привет. Вот какая у меня проблемка появилась: надо как то сделать привязку объектов к технологической схеме. Т.е. надо выводить некоторые характеристики объекта, который выбирается путем клика по определенной области схемы. Примерно как если кликать по карте города, а показываться будут адреса домов по которым и было нажатие мышиной кнопки. Совершенно не знаю с чего и начинать :( Важен ли формат в котором сделана схема? Или можно пользоваться обычными изображениями типа jpg? Какие библиотеки для этого нужны? Может кто примерчиком поделится или описанием? Заранее благодарю за помощь!!
|
|||
|
||||
snaker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 13.4.2007 Репутация: 1 Всего: 1 |
Если пользовать JPG то придётся делать векторные изображения, грубо говоря, многоугольники, и потом при клике сверять, в какую область попадает точка(примерно, как это делается в HTML с картинками)...
Придется, наверно, организовать свой формат.... И сделать эдитор, чтоб посоздавать эти карты... Желательно, конкретизировать задачу... что именно надо получить.. |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Ну, раз никто ничего не говорит и не советует, то выскажусь хотя бы я.
![]() В общем, я бы делал так. Берём картинку в любом формате. Определяем в пикселах регионы (области) и сохраняем их в каком-либо формате. Для каждого региона тут же сохраняем и информацию, которая должна отображаться при клике. Далее берём панельку. Делаем отрисовку на ней картинки в натуральную величину. Панельку ложим в скроллпейн. Подгружаем соранённую информацию о регионах. При клике на панельке (яко и на "картинке") проверяем, не попали ли в какой-нибудь регион. Если попали - выводим в каком-либо виде нужную информацию (тултип, диалог и т.п. кошмарные вещи). Идея простейшая. Делал так в с++. На жабе не уверен только в том, можно ли нормально скроллить панель с картинкой в скроллпейне так, чтобы выглядело, будто скроллится картинка (ну, не игрался я с картинками). В остальном - всё решаемо. Идею описал в простейшем виде, но при желании нетрудно сделать вариант поумнее и поудобнее. Главное - общая суть. ;) Добавлено через 2 минуты и 58 секунд Ну вот. ![]() ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
А на счет целесообразности подключения библиотек ГИС в свое приложение для решения задачи навигации есть у кого нить идеи?
|
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Как мне кажется, ГИС работает только с векторными изображениями. Но я с нею не игрался, так что не гарантирую.
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
fixxer |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Да, конечно, объектами ГИС являются векторные элементы и битмапы как символы. Однако во всех ГИС есть возможность использовать большой битмап как подложку. В общем схема такова, подкладывается битмап, по нему обрисовываются объекты и назначаются свойства. Добавлено @ 09:39
Легко. Делаем наследника JComponent, инкапсулируем в него BufferedImage, preferredSize выставляем в размер картинки, а в paintComponent делаем примерно так:
Далее кладем компонент в JScrollPane и наслаждаемся. Только не забываем сделать JScrollPane#getViewport().setScrollMode(JViewport.BLIT_SCROLL_MODE) и в компоненте setOpaque(true), чтобы не весь Viewport перерисовывался, а только то что нужно. Мог где-то накосячить - писал здесь. Это сообщение отредактировал(а) fixxer - 24.4.2007, 09:39 -------------------- ![]() |
||||||
|
|||||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Вполне возможно что мне и скроллинг не будет нужен - схемы будут влазить на экран и так
![]() |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Думаю лучше сделать как писал nornad. Ну типа завести свой фомат на основе xml, где описан битмап, регионы на нем и что делать при щелчке на регион, например послать запрос в базу, можно в базе все хранить, но мне не нравится, не универсально. -------------------- ![]() |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 6 Всего: 31 |
Если все регионы прямоугольные и без поворотов относительно горизонтали, то в принципе можно попробовать. Я сам ни разу не делал кнопку, которую не отличить от фона, но, думаю, это не такая уж и проблема. В крайнем случае можно создать свой класс кнопки. ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Неожиданный поворот событий
![]() Схем пока нет, но предполагаются они в векторном виде, возможно автокад. Каким образом можно использовать автокадовскую графику в своем приложении? |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
У Автокада два формата dwg - закрытый, dxf - открытый с довольно-таки простой и описаной структурой.
Добавлено через 6 минут и 7 секунд Например: тынц еще тынц -------------------- ![]() |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Большое спасибо за ссылки!!
А случайно на русском ничего не завалялось в запасе, а то мой буржуйский не идеален? ![]() |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Глянул dxfviewer и его новую бета версию под свинг и появились вопросы:
1. сделан он как оконное приложение, а мне бы хотелось использовать его (не обязательно его, можно подобный)функционал в своем приложении. Как это можно сделать? 2. снова возникает вопрос с навигацией т.е. надо выводить некоторые характеристики объекта, который выбирается путем клика по определенной области схемы. Как можно этого добиться? И что для этого надо использовать? |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
Дык исходники есть. Курите их, и используйте части в своем приложении.
-------------------- ![]() |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
на dxfviewer исходников нет, да еще и новый обфускатором обработан :(
|
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 15 Всего: 27 |
у dxfviewer можно попросить исходники. А на Ycadv точно есть.
-------------------- ![]() |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
С Ycadv согласен, только скачал, но еще не смотрел. А вот на счет dxfviewer не уверен. Про исходники было написано для старой версии, а вот для новой не думаю что получится, иначе зачем обфускатор применять?
|
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
Прикрутить просмотрщик удалось
![]() Возникли вопросы: 1. Изображение выводится на черном фоне. Как сделать фон белым? 2. Левой кнопкой мыши могу вращать изображение. Как сделать приближение правой кнопкой? 3. Хотелось бы знать координаты мыши, только не относительно панели, а относительно деталей изображения. Как? 4. Проблема с шрифтами. Кириллицу выводит знаками вопроса. Каким образом это исправить? Новая версия dxfviewer обладает необходимым функционалом вопросов 1-3, а с кириллицей там такая же проблема... Если кто пользовался DXFLoader-ом в своих приложениях, подскажите пожалуйста ответами на вопросы! |
|||
|
||||
Enterprise |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.6.2006 Репутация: нет Всего: 1 |
неужели никто не использует dxf файлы? :(
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |