请问如何使一个组件跟着鼠标箭头走啊?

Born_This_Way 2012-08-24 11:33:09
比如鼠标按在一个label上时候,label会跟着鼠标光标一起移动,是在mousepressed里写吗?
我试了下,坐标老会搞混掉
public class Bird extends JLabel implements MouseListener {

//

public void mousePressed(MouseEvent e) {
Point pointBird=this.getLocation;
Point pointMouse=e.getLocation;

if(pointBird.distance(507.0, 360.0)<100.0) {
this.setLocation(pointMouse);
}
}
}

结果pointBird得到的是窗口里的坐标,pointMouse得到的是label中的坐标(差别很大),而且if语句执行一次就不执行了,就是说label就动了一下,不是跟着动的,小弟请教大家哦!!!最好贴下思路代码。。。
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlQ_ 2012-08-28
  • 打赏
  • 举报
回复
哈哈哈哈~~这个不错~~
iGoodLoser 2012-08-28
  • 打赏
  • 举报
回复
通常需要MouseListener跟MouseMotionListener两个接口
其中mousePressed方法中记录下最初的坐标,mouseReleased记录最终坐标
而mouseDragged根据变化来改变坐标
a790851624 2012-08-25
  • 打赏
  • 举报
回复
你的接口选错了,应该是:MouseMotionListener。
他需要重写两个方法,其中mouseMoved()方法中,是当你移动鼠标是,需要做什么事;mouseDragged()方法中,是当你拖动鼠标是,做什么事。具体形式是下面。

public class Bird extends JLabel implements MouseListener {

//....


public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub

}

public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub

}}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧