1 import java.awt.dnd.DragSource;
   2 import java.awt.dnd.DnDConstants;
   3 import java.awt.dnd.DragGestureEvent;
   4 import java.awt.dnd.DragGestureListener;
   5 import java.awt.*;
   6 
   7 public class SourcePanel extends Panel {
   8 
   9     private final MyDragGestureListener dragGestureListener =
  10             new MyDragGestureListener();
  11 
  12     public SourcePanel() {
  13         setPreferredSize(new Dimension(200, 200));
  14         DragSource defaultDragSource =
  15                 DragSource.getDefaultDragSource();
  16         defaultDragSource.createDefaultDragGestureRecognizer(this,
  17                 DnDConstants.ACTION_COPY_OR_MOVE, dragGestureListener);
  18         setBackground(Color.RED);
  19     }
  20 
  21     private class MyDragGestureListener implements DragGestureListener {
  22         public void dragGestureRecognized(DragGestureEvent dge) {
  23             dge.startDrag(null, new MyTransferable());
  24         }
  25     }
  26 }