1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java 获取鼠标位置 鼠标移动 模拟鼠标左右键

java 获取鼠标位置 鼠标移动 模拟鼠标左右键

时间:2019-01-01 19:02:33

相关推荐

java 获取鼠标位置 鼠标移动 模拟鼠标左右键

最近无聊自己写界面玩,发现robot类操作鼠标挺好用的。对robot类更加熟一点了。记一下。

获取鼠标位置

Point p = MouseInfo.getPointerInfo().getLocation();System.out.println(p.getX() + "---" +p.getY());

鼠标移动

// 鼠标移动public static void change(int type, int x, int y){Point p = MouseInfo.getPointerInfo().getLocation();int width = (int) p.getX() + x;int heigh = (int) p.getY() + y;if(type == 0) {width = x;heigh = y;}Robot robot;try {robot = new Robot();robot.mouseMove(width,heigh);} catch (AWTException e) {e.printStackTrace();}}

这里入参type为0时,xy直接为入参本身。

模拟鼠标左右键

// 模拟鼠标左键右键public static void onclickSB(String lr){Robot robot = null;try {robot = new Robot();} catch (AWTException e) {e.printStackTrace();}if(lr.equals("right")) {robot.mousePress(InputEvent.BUTTON3_MASK);robot.mouseRelease(InputEvent.BUTTON3_MASK);} else {robot.mousePress(InputEvent.BUTTON1_MASK);robot.mouseRelease(InputEvent.BUTTON1_MASK);}}

假装没看见自己的函数命名(≖ᴗ≖)✧。如果鼠标移动和鼠标点击同时配合使用,需要加进程暂停,不然,点击和移动的事件执行的顺序会紊乱。所以,需要比较受顺序影响的地方,添加暂停代码,在不影响顺序和体验的前提下,比较适中的数值200毫秒。具体因人而异。

// 进程暂停public static void stop(int s){try {Thread.sleep(s);} catch (InterruptedException e) {e.printStackTrace();}}

实例:

public static void clear(){Point p = MouseInfo.getPointerInfo().getLocation();//System.out.println(p.getX() + "---" +p.getY());change(0,x, y);onclickSB("left");change(0,x-40, y-100);onclickSB("left");change(0,(int)p.getX(), (int)p.getY());stop(200);}

这是其中一段自己写的清除eclipse控制台日志中点击清理键的鼠标移动,获取鼠标当前位置,改变鼠标位置为xy,点击鼠标左键,改变鼠标位置为已经点击的左上角,点击鼠标左键,改变位置为最初位置。停顿200毫秒。后续我又其他事件,所以需要停顿。

ps:我写的是在控制台打印10行文本内容,有上下两个按钮,上是上一页,下是下一页,一个输入框,可输入页码或者,想查询的文字内容,自动跳行,点击下自动跳行。控制鼠标是为了清理上一次打印的内容,按ctrl+1选中当前鼠标位置为清理日志按钮坐标。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。