![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Мне необходимо перетаскивать картинки и я вот увидел такой во пример.
http://blogs.sun.com/geertjan/entry/gettin...rted_on_windows можно ли помоч его разобрать так как я про эту технологию мало что знаю а с англ у меня туго?. А в этом примере происходит то что мне необходимо. |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
может есть на русском какое объяснение про Drag and Drop? или ещё какой пример хороший?
|
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Ты рисунки откуда хочеш перетаскивать? Откудато извне твоей аппликации или внутри, из JLabel например?
-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
_Michael, Я хочу перетаскивать из JLabel (JButton).
|
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Одним словом здесь в архиве плод моих творений, вроде разобрался более-менее.
Полдня сидел думаю то что тебе надо Это сообщение отредактировал(а) _Michael - 21.8.2007, 18:37 Присоединённый файл ( Кол-во скачиваний: 36 )
dnd.rar 3,56 Kb-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
_Michael, огромное спасибо буду смотреть
|
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
_Michael, похоже то что надо только небольшое уточнение в том что я беру с кнопки картинку и перетаскиваю её на произвольное место на JPanel.
Добавлено через 33 секунды А в примере вроде есть только одна точка в которую можно перетащить Добавлено через 2 минуты и 56 секунд но это уже молочи ещё раз огромнейшее тебе спасибо _Michael, Добавлено через 3 минуты и 37 секунд да снова забыл если что будет не ясно то я обязательно обращюсь |
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Ну сам понимаеш что тут господствует LayoutManager который ты установил для своей панели, ет не так просто, ну а может я просто неумею Было б очень кстати чем сможем тем поможем Это сообщение отредактировал(а) _Michael - 22.8.2007, 21:58 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| _Michael |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Чтоб иконка была в любом месте, делаем минимальные изменения, а именно, DropTarget вешаем теперь не на JLabel а на панель на которой лежит етот наш JLabel чтоб можна было "дропать" в любом месте Панели
и второе изменение, в методе public void drop(DropTargetDropEvent e) дописываем одну строчку, точнее две
-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
||||
|
|||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Вот у меня ещё одна проблема возникла а состоит она в следующем:
когда мы перетягиваем картинку то я так понял мы ее цепляем на уже сущуствующий Label (ну тот который на панели) собственно вот жта часть
а можно ли как то делать это на панели ? может как то картинку рисовать или ещё что я вчера пробовал так и нечё не получилось. Просто я зделал 2 лабел с картинками и я сначала тащу с одной а потом с 2-ой и они друг друга перетирают. А надо что б их 2 оставалось. Как это можно реализовать? Я предпалпгаю надо как то рисовать её на панели (создавать или ещё както) и делать массив вот этих кртинок DataFlavor я точно не знаю так как толком ещё мало понимаю весь процесс. |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Ещё есть один вопрос а как сделать так что б когда при перетаскивании картинки картинка с источника исчезала?
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
зделал следующим образом и работает нормально
в классе DropLabel и его внутренем классе DSListener в методе dragDropEnd зделал DragLabel.this.setVisible(false); и хотел уточнить насколько это верно и не критично может более правильно в другом месте это делать и как то по другому? Может как то удалять картинку с DropLabel или ещё как? |
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Ну если так подумать, то наверное метод public void dragDropEnd(DragSourceDropEvent e) для того и предназначем чтоб отлавливать завершение етого всего процесса. Не знаю но если тебе етого DragLabel больше не надо ведь фактически то ета DragLabel и служила для единственной цели служить источником картинки, и если ты картинку перетащил уже то можно ету DragLabel вообще убрать из панели чтоб ее сборщик мусора "утилизировал"
Это сообщение отредактировал(а) _Michael - 12.9.2007, 16:37 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Вот так как это реализовать? |
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Ты наверное сплутал DragLabel с DropLabel или я чтото не понимаю. Добавлено @ 16:39 ну есть же такой метод remove(Component comp);
Както так и не забудь если где то ссилки на ету Jlabel есть также их сделать null'ами Это сообщение отредактировал(а) _Michael - 12.9.2007, 16:43 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
_Michael, ой DropLabel - это опечатка я имел ввиду DragLabel
Добавлено через 3 минуты и 23 секунды да делаю
нечего не происходит. Как быть? |
|||
|
||||
| _Michael |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Надо еще валидейт и репеинт может чтото одно не знаю точно.
-------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
подожди что то я запутался
panel.remove(DragLabel.this); но ведь панел я не знаю мне она не доступна или как к ней достучаться из dragDropEnd |
|||
|
||||
| _Michael |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
Надо еще валидейт и репеинт может чтото одно не знаю точно.
Добавлено @ 12:57 Попробуй взять парента, и посмотреть может ето она как раз.
или
Это сообщение отредактировал(а) _Michael - 12.9.2007, 17:03 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
||||||
|
|||||||
| newsl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.11.2009 Репутация: нет Всего: нет |
мине необхадимо переключится на ДнД в процессе простого передвижения компонанта по панели тоесть , когда просто предевигаю компонент в приделах панели то просто перерисововаю его на позицию курсора когдаже компонент зашол полностю за краи фреима то надо включить ДнД проблема в том что когда перетаскиваю просто по панели и подовлаю ДнД то неудаётся отослать ешё один event когда зашол за краи , как создать такои event и отослать нужному обработчикку низнаю помагите у каво есть харошие идеи по этому поводу ибо очен надо причом срочно ! ?
Добавлено через 1 минуту и 45 секунд была идея както создать собственый DragGestureEvent толко вот как и как отослат низнаю :( если вообше такое вазможно Добавлено через 7 минут и 6 секунд
попробуи это oldFrame.getContentPane().validate(); oldFrame.getContentPane().repaint(); |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |