package bao;import java.awt.*;
import java.awt.event.*;
import javax.swing.* ;public class ImageMoveTest extends JPanel implements MouseListener{
    
    private Image img = Toolkit.getDefaultToolkit().createImage(ImageMoveTest.class.getResource("逍遥背面.gif"));
   
    private static double RATE = 6.0;    //记录鼠标点击的位置
    Point current = new Point();//Poin 是记录当前的鼠标坐标的值
    
    //图片的位置
    Point last = new Point();//记录当前图片的鼠标值
    
    int subX = last.x - current.x;
int subY = current.y - last.y;
    
    private double x = 0;
    private double y = 0;
    
    //x,y 方向的速度
    private double xRate = 0.1;
    private double yRate = 0.0;
    private double rateX = xRate;
    
    private Timer timer;
    /** Creates a new instance of ImageMoveTest */
    public ImageMoveTest() {//第4步
        addMouseListener(this);
        timer = new Timer(30,new ActionListener(){//第5步
            public void actionPerformed(ActionEvent e) {
                move();//第6步
                repaint();//第12步
            }
            
        });
    }
    
    private void move()//第7步
    {
        if(current.distance(last)<RATE){//第8步
         //当图片到达点击位置时,停止运动
            timer.stop();//timer停止
            last.setLocation(x,y);
            return;
        }
        if(current.x<last.x&&current.y<last.y-20)
        {
         System.out.println("在左上");
        }
        x += xRate;//第9步
        y += yRate;//第10步
        last.setLocation(x,y);//第11步
        System.out.println("X:"+x+"  Y:"+y);
    }
    
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawImage(img,last.x-29 ,last.y-85,this);
    }    public void mouseClicked(MouseEvent e) {
    }    public void mousePressed(MouseEvent e) {
        timer.start();//运行timer
        current = e.getPoint(); //current获得鼠标的坐标
        double distance = current.distance(last);//鼠标的坐标跟last(图片)的坐标差距
        xRate = (current.getX() - last.getX())/distance*RATE;//xRate=鼠标的X坐标-图片的X坐标/distance(两者之间差距)*(RATE)6.0
        yRate = (current.getY() - last.getY())/distance*RATE;//tRate=鼠标的Y坐标-图片的Y坐标/distance(两者之间差距)*(RATE)6.0
    }    public void mouseReleased(MouseEvent e) {
    }    public void mouseEntered(MouseEvent e) {
    }    public void mouseExited(MouseEvent e) {
    }
    
    public static void main(String[] args){
        JFrame frame = new JFrame();//第1步
        frame.setSize(500,500);//第2步
        frame.getContentPane().add(new ImageMoveTest(),BorderLayout.CENTER);//第3步
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}先看上面代码
上面的代码实现   鼠标点击一个地方  图片就移动过去!!但是有个地方需要高手帮忙
就是  在移动图片时
判断角度 就是
鼠标点击的地方  和图片的地方比较一下!
得到鼠标点击的地方是图片的方向度数 顺时针````