java 不能正常移动图片_java 图片的拖动处理

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

//图片的拖动效果

public class DragPictureDemo extends JFrame {

JLabel jlPic; //图片,用于拖动

public DragPictureDemo() {

super("图片的拖动效果");  //调用父类构造函数

Icon image=new ImageIcon(this.getClass().getResource("1.jpg"));  //实例化图标

jlPic = new JLabel(image);  //实例化带图片的标签

getContentPane().add(jlPic);  //增加标签到容器上

DragPicListener listener=new DragPicListener();  //鼠标事件处理

jlPic.addMouseListener(listener);  //增加标签的事件处理

jlPic.addMouseMotionListener(listener);

setSize(300,200);  //设置窗口尺寸

setVisible(true);  //设置窗口为可视

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗口时退出程序

}

class DragPicListener implements MouseInputListener{  //鼠标事件处理

Point p=new Point(0,0); //坐标点

public void mouseMoved(MouseEvent e){}

public void mouseDragged(MouseEvent e){

Point newP=SwingUtilities.convertPoint(jlPic,e.getPoint(),jlPic.getParent()); //转换坐标系统

jlPic.setLocation(jlPic.getX() (newP.x-p.x),jlPic.getY() (newP.y-p.y)); //设置标签的新位置

p=newP; //更改坐标点

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void mousePressed(MouseEvent e){

p=SwingUtilities.convertPoint(jlPic,e.getPoint(),jlPic.getParent()); //得到当前坐标点

}

}

public static void main(String[] args) {

new DragPictureDemo();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值