Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > JTree и Drag & Drop


Автор: ShkVal 24.3.2005, 11:34
Надо из одного дерева перетащить ноду в другое и после добавления этой ноды в дерево которое перетащили надо на ней спозиционироваться, т. е. установить на неё курсор (сделать её выбранной).
Делается всё так.
В методе dragDropFinish после добавления ноды к дереву я вызываю метод setSelectionPath(new TreePath(newNode.getPath())); Первый раз всё проходит хорошо всё позиционируется. Но когда я повторно перетаскиваю выскакивает Exeption такого рода

Код

java.awt.dnd.InvalidDnDOperationException: Drag and drop in progress
    at sun.awt.dnd.SunDragSourceContextPeer.setDragDropInProgress(SunDragSourceContextPeer.java:328)
    at java.awt.dnd.DragSource.startDrag(DragSource.java:285)
    at java.awt.dnd.DragSource.startDrag(DragSource.java:402)
    at com.draganddrop.DNDTree.dragGestureRecognized(DNDTree.java:91)
    at java.awt.dnd.DragGestureRecognizer.fireDragGestureRecognized(DragGestureRecognizer.java:339)
    at sun.awt.windows.WMouseDragGestureRecognizer.mouseDragged(WMouseDragGestureRecognizer.java:205)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:262)
    at java.awt.Component.processMouseMotionEvent(Component.java:5148)
    at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:2779)
    at java.awt.Component.processEvent(Component.java:4901)
    at java.awt.Container.processEvent(Container.java:1569)
    at java.awt.Component.dispatchEventImpl(Component.java:3615)
    at java.awt.Container.dispatchEventImpl(Container.java:1627)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3215)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    at java.awt.Container.dispatchEventImpl(Container.java:1613)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Если метод setSelectionPath убрать, то всё работает, но конечно же не позиционируется.

Автор: Domestic Cat 24.3.2005, 11:42
У тебя есть строка типа
Код

tree.setDragEnabled(true);

Если есть, попробуй ее убрать.

Автор: ShkVal 24.3.2005, 12:05
Domestic Cat, нету такого

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)