La technique à mettre en place pour bien gérer ses glisser-déplacer entre deux composants (swing ou externes)
La source
- DragSource ds = DragSource.getDefaultDragSource();
ds.createDefaultDragGestureRecognizer(composant, action, listener)
// Demande de drag effectuée et reconnue. dragGestureRecognized
public void dragDropEnd(DragSourceDropEvent event) { if (event.getDropSuccess()) { if (event.getDropAction() == DnDConstants.ACTION_MOVE) { ... } } }
La cible
DropTarget target = new DropTarget(composant, listener);
- Activer désactiver :
target.setActive(boolean);
- Définir une option par défaut (par défaut : toutes les options)
DndConstants.ACTION_COPY DnDConstants.ACTION_MOVE DnDConstants.ACTION_COPY_OR_MOVE DnDConstants.ACTION_LINK
// La source supprime l'élément déposé event.acceptDrop(DnDConstants.ACTION_MOVE) public void drop(DropTargetDropEvent event) { if {!isDropAcceptable(event)) { event.rejectDrop(); return; } event.acceptDrop(action); // Traitement event.dropComplete(); }