在Java中移动光标

27

我想制作一个应用程序,可以测量光标距离组件中心的距离,然后将光标移回到中心(就像大多数PC视频游戏一样)。有没有人有什么建议?

2个回答

47

Robot类可以为您完成此操作。以下是移动鼠标光标的示例代码:

try {
    // These coordinates are screen coordinates
    int xCoord = 500;
    int yCoord = 500;

    // Move the cursor
    Robot robot = new Robot();
    robot.mouseMove(xCoord, yCoord);
} catch (AWTException e) {
}

6

嗨,这只是一个补充。我经常使用树莓派,所以我必须学会如何优化我的代码,这篇文章会更加简短。

try {
    //moves mouse to the middle of the screen
    new Robot().mouseMove((int) Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2, (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2);
    //remember to use try-catch block (always, and remember to delete this)
} catch (AWTException e) {
    e.printStackTrace();
}

别忘了导入:

import java.awt.*;

1
我有点困惑...您是在谈论将源代码存储在树莓派上吗?还是这会神奇地使编译后的文件变小?如果是后者,为什么要删除注释? - Ky -
变量越少越好,你要让它非常紧凑,这样就不会在RAM上创建溢出。 - Blake T
5
无论如何,它都会在您的代码中使用临时变量。 点链是语法糖,但最终,每个方法的返回值必须保存和跟踪在某个地方。 - Ky -
2
此外,你的代码计算量更大,需要两次获取默认工具包和其屏幕大小。由于默认工具包是单例模式,事先保存一个引用不会占用更多内存,但可以节省计算时间。我不确定屏幕大小是否也被缓存并返回,但我愿意打赌它也是这样的,因此保存对其的引用也不会占用更多内存。 - Ky -

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接