[英]Set location of cursor within jframe
我有一个使用以下代码的程序:
public void mouseMoved(MouseEvent e) {
mousex = e.getX();
mousey = e.getY();
if(mousex >= 700) {
try {
Robot robot = new Robot();
robot.mouseMove(0, 0);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(mousex <= 100) {
Robot robot;
try {
robot = new Robot();
robot.mouseMove(0, 0);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
除了一件事情,所有的一切都工作正常。 它设置光标在屏幕上的位置,而不是jframe。 另外,当我说if(mousex> = 700)时,它也会从屏幕上获取。 我需要知道如何将其更改为jframe。 谢谢。
获取JFrame在屏幕上的位置 ,然后简单地相应地转换鼠标位置。 所有扩展Components的对象(包括JFrame)都具有getLocationOnScreen()
方法。 因此,再次使用此方法,获取JFrame的位置,然后查找鼠标的相对位置,包括鼠标的位置和所需位置。
这可以用小学代数解决。
编辑
您可能希望只创建一次Robot对象,并在需要时使用该对象,而不是每次都重新创建它。
你可以得到的东西
JFrame
然后设置x或y到的最大电流大小JFrame
(如果共祝是完全动态的) 看起来像这样
在上图中, JFrame
在屏幕上的位置是(50,50),这意味着JFrame
内部组件的坐标变为(0,0)。 现在,在JFrame
内获取鼠标在屏幕上的位置,您只需说出JFrame
内的一些所需的随机坐标,然后将这些屏幕位置50添加到其中即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.