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