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();
}