Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener;
import java.awt.dnd.DragSource;
import java.awt.dnd.DragSourceDragEvent;
import java.awt.dnd.DragSourceDropEvent;
import java.awt.dnd.DragSourceEvent;
import java.awt.dnd.DragSourceListener;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class Main {
    public static void main(String[] argv) throws Exception {

        JComponent com = new DraggableComponent();

        JFrame f = new JFrame();

        f.add(com);
        f.setSize(300, 300);
        f.setVisible(true);
    }
}

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) {
        System.out.println("enters");
    }

    public void dragOver(DragSourceDragEvent evt) {

        System.out.println("over");
    }

    public void dragExit(DragSourceEvent evt) {
        System.out.println("leaves");
    }

    public void dropActionChanged(DragSourceDragEvent evt) {
        System.out.println("changes the drag action between copy or move");
    }

    public void dragDropEnd(DragSourceDropEvent evt) {
        System.out.println("finishes or cancels the drag operation");
    }
}