如何使用java在整个屏幕上平滑移动鼠标?
发布时间:2020-12-15 02:02:57 所属栏目:Java 来源:网络整理
导读:有一个mouseMove()方法使指针跳转到该位置.我希望能够让鼠标在整个屏幕上平滑移动.我需要编写一个名为mouseGLide()的方法,该方法采用起始x,起始y,结束x,结束y,滑行应采取的总时间以及滑行期间要进行的步骤数.它应该通过n步骤从(开始x,开始y)移动到(结束x,开
有一个mouseMove()方法使指针跳转到该位置.我希望能够让鼠标在整个屏幕上平滑移动.我需要编写一个名为mouseGLide()的方法,该方法采用起始x,起始y,结束x,结束y,滑行应采取的总时间以及滑行期间要进行的步骤数.它应该通过n步骤从(开始x,开始y)移动到(结束x,开始y)来为鼠标指针设置动画.总滑行应该花费t毫秒.
我不知道怎么开始可以帮助我开始这个吗?任何人都可以告诉我,为了使这个问题有效,我需要采取哪些步骤. 解决方法
首先,让我们写一个空方法,其中参数与您在问题中定义的一样.
public void mouseGlide(int x1,int y1,int x2,int y2,int t,int n) { } 接下来,让我们创建一个Robot对象,并计算3条信息,这些信息将有助于您将来的计算.不要忘记从实例化Robot中捕获异常. Robot r = new Robot(); double dx = (x2 - x1) / ((double) n); double dy = (y2 - y1) / ((double) n); double dt = t / ((double) n); dx表示每次滑动时鼠标x坐标的差异.基本上它是总移动距离分为n个步骤.与yy相同,除了y坐标. dt是总滑行时间,分为n个步骤. 最后,构建一个执行n次的循环,每次将鼠标移近最终位置(采用(dx,dy)步骤).在每次执行期间使线程休眠dt毫秒.你的n越大,滑行越平滑. 最后结果: public void mouseGlide(int x1,int n) { try { Robot r = new Robot(); double dx = (x2 - x1) / ((double) n); double dy = (y2 - y1) / ((double) n); double dt = t / ((double) n); for (int step = 1; step <= n; step++) { Thread.sleep((int) dt); r.mouseMove((int) (x1 + dx * step),(int) (y1 + dy * step)); } } catch (AWTException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |