Le Glisser Déposer

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)
  • Ecouteur : DragGestureListener
  • // Demande de drag effectuée et reconnue.
    dragGestureRecognized
    
  • Conscrution d’un transferable
  • event.startDrag(null, transferable, listener)
  • Ecouteur : DragSourceListener
  • 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
      
    • Ecouteur : DropTargetListener
    • // 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();
      }
      

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *