Надо из одного дерева перетащить ноду в другое и после добавления этой ноды в дерево которое перетащили надо на ней спозиционироваться, т. е. установить на неё курсор (сделать её выбранной). Делается всё так. В методе 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 убрать, то всё работает, но конечно же не позиционируется. |