Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Drag & Drop JTree Выделение ноды / 11 сообщений из 11, страница 1 из 1
14.03.2013, 16:35:49
    #38184229
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Всем доброго дня.
Вопрос может и банальный, но у меня уже варианты кончились:(
Итак, сам вопрос:
Есть D&D дерево,реализованное с помощью DropTargetListener, DragSourceListener, DragGestureListener.
Мне нужно при перетаскивании ноды в другую ноду получать координаты ноды-приемника (для последующего выделения ее и раскрытия по таймауту).

Вешал на дерево MouseMotionAdapter. Вроде бы искомый метод mouseDragged, но при захваченной ноде этот метод уже не отрабатывает :(

Дайте пожалуйста волшебного пинка в нужном направлении :)
...
Рейтинг: 0 / 0
14.03.2013, 16:51:36
    #38184282
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Не нужен дополнительный Listener, вот пример из туториала:
http://docs.oracle.com/javase/tutorial/uiswing/examples/dnd/BasicDnDProject/src/dnd/BasicDnD.java
TransferHandler.TransferSupport содержит координаты, по ним можно найти ноду и запустить таймер, который позже её откроет.
По идее так.
...
Рейтинг: 0 / 0
14.03.2013, 16:55:52
    #38184293
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Blazkowicz, спасибо Вам огромное!
...
Рейтинг: 0 / 0
14.03.2013, 17:54:42
    #38184423
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Blazkowicz, все-таки немного не то:(

Мне нужно мышкой взять ноду, тащить ее над другими нодами и во время перетаскивания другие ноды должны выделяться, а если задержать мышку, то нода должна открыться:) как то так. А TransferHandler этого не позволяет :(
...
Рейтинг: 0 / 0
15.03.2013, 13:11:11
    #38185502
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Может есть методы для решения задачи?
...
Рейтинг: 0 / 0
15.03.2013, 13:13:47
    #38185508
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
danatrielА TransferHandler этого не позволяет :(
Что именно он "не позволяет"? За вас он всё вышеописаное делать не будет. Что не так? Событие не отрабатывает когда нужно?
...
Рейтинг: 0 / 0
15.03.2013, 13:14:46
    #38185511
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Есть какой-то запускабельный пример кода, чтобы на нем посмотреть?
...
Рейтинг: 0 / 0
15.03.2013, 13:28:04
    #38185537
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Blazkowicz, во вложении проект.
класс дерева в пакете Tree CustomTree_Form. Изначально будет дерево с элементом root.
К нему можно добавлять элементы - правая кнопка - Новый ниже, ну а потом уже их перетаскивать.
...
Рейтинг: 0 / 0
15.03.2013, 13:32:59
    #38185549
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
BlazkowiczdanatrielА TransferHandler этого не позволяет :(
Что именно он "не позволяет"? За вас он всё вышеописаное делать не будет. Что не так? Событие не отрабатывает когда нужно?

Мне и не нужно, чтобы за меня он все делал. Мне нужно получать координаты ноды (компонета,да неважно чего) под курсором мыши, когда этим курсором держу ноду. А по факту получается, что событие срабатывает 1 раз когда двигаю вышей первый раз.
...
Рейтинг: 0 / 0
15.03.2013, 13:47:40
    #38185564
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Да, точно. TransferHandler не используется, когда работает родной свинговый DnD. О чем в JavaDoc и сообщается. Могли бы сделать над собой усилие и прочитать.

Вот так пробуйте:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        new TreeDropTarget(this){
            @Override
            public void dragOver(DropTargetDragEvent dtde)
            {
                Point p = dtde.getLocation();
                TreePath path = getPathForLocation(p.x, p.y);
                setSelectionPath(path);
                expandPath(path);
                super.dragOver(dtde);
            }
        };
...
Рейтинг: 0 / 0
15.03.2013, 14:04:57
    #38185604
danatriel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & Drop JTree Выделение ноды
Blazkowicz, спасибо. Все работает. Я документацию читал, но, похоже, недостаточно внимательно. Еще раз спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Drag & Drop JTree Выделение ноды / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]