next up previous contents
Next: Grafische Darstellung des Event-Flusses Up: Drag'n'Drop API Previous: Droppable Component   Inhalt

Codebeispiel

 
class DTListener implements DropTargetListener{
      
      public void dragEnter(DropTargetDragEvent e){ //darf man hierher draggen?
          if(isDragOK(e) == false){
            e.rejectDrag(); //elegant
            return;
          }
          e.acceptDrag(accept); //das auch
      }
      public void dragExit(DropTargetEvent e){ //drag vorbei
      }

      public void dragOver(DropTargetDragEvent e){//drueber wird gedraggt
          if(isDragOK(e) == false){
            e.rejectDrag();
            return;
          }
          e.acceptDrag(accept);
      }

      public void drop(DropTargetDropEvent e){ //drop
          Object data;
          if((data = validateDrop(e)) == null){ //nix ok
            e.rejectDrop(); //ich habe fertig
            return;
          }
          e.acceptDrop(accept); //doch ok
          if(!doTheDrop(e, data)){  //aber hat trotzdem nicht geklappt
            e.dropComplete(false); //also nicht vorbei
            return;
          }
          e.dropComplete(true); //hier doch
      }

      public void dropActionChanged(DropTargetDragEvent e){ //wieder ctrl losgelassen
          if(isDragOK(e) == false){
            e.rejectDrag();
            return;
          }
          e.acceptDrag(accept);
      }

    }



Britta Koch
1999-11-29