所以我要做的是制作按钮,但用户无法单击它,每次用户指向该按钮时,按钮都会改变其位置。 我试图获取光标的位置,然后将其与按钮的位置进行比较,如果它们相等,则按钮移动到随机位置,但这不起作用...... 任何帮助
public void mouseMoved(MouseEvent me)
{
Point p = MouseInfo.getPointerInfo().getLocation();
x=p.x;
y=p.y;
i=b2.getBounds().x;
j=b2.getBounds().y;
Random d=new Random();
a = d.nextInt(200);
b = d.nextInt(200);
if (x==i && y==j){
b2.setLocation(a,b);
}
}
最佳答案
b2.getBounds()
包含按钮的 x、y、宽度和高度。在您的代码中,您要检查鼠标光标何时位于相同的 x y 位置。但是,只有当光标位于按钮的右上角时才会出现这种情况。您真正想要做的是检查光标何时位于按钮的范围内。例如:
public void mouseMoved(MouseEvent me)
{
Point p = MouseInfo.getPointerInfo().getLocation();
x=p.x;
y=p.y;
i=b2.getBounds().x;
j=b2.getBounds().y;
Random d=new Random();
a = d.nextInt(200);
b = d.nextInt(200);
boolean withinX = x >= i && x <= i+b2.getBounds().width;
boolean withinY = y >= j && y <= j+b2.getBounds().height;
if (withinX && withinY){
b2.setLocation(a,b);
}
}
关于java - 当光标放在按钮上时更改按钮的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23017886/