java - 当光标放在按钮上时更改按钮的位置

标签 java swing jbutton actionlistener mouselistener

所以我要做的是制作按钮,但用户无法单击它,每次用户指向该按钮时,按钮都会改变其位置。 我试图获取光标的位置,然后将其与按钮的位置进行比较,如果它们相等,则按钮移动到随机位置,但这不起作用...... 任何帮助

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/

相关文章:

java - 对于 64 位 Windows,我们需要使用 64 位 java

java - 在 Java 游戏中使用斜坡因子

java - 如何在Scenebuilder/JavaFX中的GridPane中设置所有网格的大小和各种属性

java - 将功能分配给 Jbutton

java - 为什么我的按钮占据了整个 JFrame?

java - 如何在Java中存储ImageIcon

java - 如何从 Java 和 JPA 调用存储过程

java - 如何保存程序中的更改?

java - IEEE 754 和语言之间的值范围

java - 将两个面板彼此相邻对齐