mousePressed鼠标位置获取

tu3156060844 2010-07-29 01:24:16
private void resetcity(int X, int Y) {
for (int i = 0; i < citylab.length; i++) {
int reset_x = citylab[i].getX() + X;
int reset_y = citylab[i].getY() + Y;

citylab[i].setLocation(reset_x, reset_y);
}
}


public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();

}


public void mouseDragged(MouseEvent e) {
int a = 0;
int b = 0;
int A = 0;
int B = 0;
A = e.getX() - x;
B = e.getY() - y;
a = lab.getX() + e.getX() - x;
b = lab.getY() + e.getY() - y;
if (a > 0) {
a = 0;
A = 0;
}
if (b > 0) {
b = 0;
B = 0;
}
if (a < -790) {
a = -790;
A = 0;
}
if (b < -595) {
b = -595;
B = 0;
}
resetcity(A, B);
lab.setLocation(a, b);
}

这是获取鼠标位置以及图片上的n个label(当按钮用)的坐标跟着一起变的部分代码。现在基本都实现了,但遇到一个问题,当鼠标移动到边缘时(几个if做的判断),再上下移动鼠标那个获取的鼠标坐标就会出问题,label按钮全部跟着移动了。不到边缘的话倒不会出问题。大家帮忙看下
...全文
284 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tu3156060844 2010-07-29
  • 打赏
  • 举报
回复
再顶,期待高手啊
tu3156060844 2010-07-29
  • 打赏
  • 举报
回复
顶下,等待高手
tu3156060844 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jennyzhangyi 的回复:]
你的鼠标移动到边缘,获取的鼠标的坐标出现了什么问题,坐标不对,还是鼠标到达边界的时候不能移动了?如果鼠标到达边界的话你需要告知label,改变label在其父窗口的位置,要搞清楚父子关系,呵呵,不知道能不能解决楼主的问题
[/Quote]

是坐标不对,鼠标可以动,label也改了,但到边界后甩动(上下或左右)就会出现小量偏移
jennyzhangyi 2010-07-29
  • 打赏
  • 举报
回复
你的鼠标移动到边缘,获取的鼠标的坐标出现了什么问题,坐标不对,还是鼠标到达边界的时候不能移动了?如果鼠标到达边界的话你需要告知label,改变label在其父窗口的位置,要搞清楚父子关系,呵呵,不知道能不能解决楼主的问题
tu3156060844 2010-07-29
  • 打赏
  • 举报
回复
也不知道能不能明白我的意思,大概就是在一个panel里放一张很大的地图,地图可以随着鼠标拖移上下左右移动,地图很多省份都做了个label按钮,现在就是当鼠标上下或左右碰撞边缘移动时获取的鼠标坐标就出问题了,label按钮位置全部都移动了

62,614

社区成员

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

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