java 面板实现图片的拖拽,效果还不错。代码直接拷过去就能看到效果了。 java
package com.conmon.myTest; import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class TestMoveImage { static int x,y; private static int num=0; private static Icon icon=null; public static void main(String[] args) throws Exception{ JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setLayout(null);//这个要设置成 null //图片 icon = new ImageIcon("F:/1353411350203.jpg"); //注:用斜杆系统会默认帮你转化为反斜杠,若是要用反斜杠则要写成:F:\\1353411350203.jpg JLabel l = new JLabel(icon); //建立具备指定图像的 JLabel 实例。 l.setSize(icon.getIconWidth(),icon.getIconHeight());//设置面板的宽度和高度 l.setBorder(BorderFactory.createLineBorder(Color.red));//给图片加上红色外框 f.getContentPane().add(l); f.setSize(180,180); f.setVisible(true); l.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ x=e.getX(); y=e.getY(); } }); l.addMouseMotionListener(new MouseMotionListener(){ public void mouseDragged(MouseEvent e) { JLabel l = (JLabel)e.getSource(); l.setLocation(l.getX()+e.getX()-x,l.getY()+e.getY()-y); } public void mouseMoved(MouseEvent e) {} }); } }