Java AWT MouseMotionListener drag and drop image
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.RepaintManager; public class Main { public static void main(String[] args) { int imageWidth = 60, imageHeight = 60; String imageFile = "icon.png"; RepaintManager.currentManager(null).setDoubleBufferingEnabled(false); Image image = Toolkit.getDefaultToolkit().getImage(DragImage.class.getResource(imageFile)); image = image.getScaledInstance(imageWidth, imageHeight, Image.SCALE_DEFAULT); // w w w . j a v a 2 s. c om JFrame frame = new JFrame("DragImage"); frame.getContentPane().add(new DragImage(image)); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class DragImage extends JComponent implements MouseMotionListener { int imageX, imageY; Image image; public DragImage(Image i) { image = i; addMouseMotionListener(this); } public void mouseDragged(MouseEvent e) { imageX = e.getX(); imageY = e.getY(); repaint(); } public void mouseMoved(MouseEvent e) { } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.drawImage(image, imageX, imageY, this); } }