package dragNdrop; import java.awt.AlphaComposite; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.image.BufferedImage; import java.io.Serializable; import javax.swing.JPanel; public class GlassPane extends JPanel implements Serializable { public GlassPane() { setOpaque(false); mAlphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f); mLocation = new Point(0, 0); } public void setImage(BufferedImage draggedImage) { mDraggedImage = draggedImage; } public void setPoint(Point location) { mLocation = location; } public void paintComponent(Graphics graphics) { if (mDraggedImage == null) return; Graphics2D graphics2D = (Graphics2D) graphics; graphics2D.setComposite(mAlphaComposite); graphics2D.drawImage(mDraggedImage, (int) (mLocation.getX() - (mDraggedImage.getWidth(this) / 2)), (int) (mLocation.getY() - (mDraggedImage.getHeight(this) / 2)), null); } private static final long serialVersionUID = 214303662751768477L; private final AlphaComposite mAlphaComposite; private BufferedImage mDraggedImage; private Point mLocation; }