e640. 使一个组件可拖动

This example demonstrates the code needed to make a component draggable. The object being transferred in this example is a string.

    public class DraggableComponent extends JComponent
            implements DragGestureListener, DragSourceListener {
        DragSource dragSource;
    
        public DraggableComponent() {
            dragSource = new DragSource();
            dragSource.createDefaultDragGestureRecognizer(
                this, DnDConstants.ACTION_COPY_OR_MOVE, this);
        }
        public void dragGestureRecognized(DragGestureEvent evt) {
            Transferable t = new StringSelection("aString");
            dragSource.startDrag (evt, DragSource.DefaultCopyDrop, t, this);
        }
        public void dragEnter(DragSourceDragEvent evt) {
            // Called when the user is dragging this drag source and enters
            // the drop target.
        }
        public void dragOver(DragSourceDragEvent evt) {
            // Called when the user is dragging this drag source and moves
            // over the drop target.
        }
        public void dragExit(DragSourceEvent evt) {
            // Called when the user is dragging this drag source and leaves
            // the drop target.
        }
        public void dropActionChanged(DragSourceDragEvent evt) {
            // Called when the user changes the drag action between copy or move.
        }
        public void dragDropEnd(DragSourceDropEvent evt) {
            // Called when the user finishes or cancels the drag operation.
        }
    }
Related Examples
原文地址:https://www.cnblogs.com/borter/p/9575345.html