Java中实现鼠标模拟与键盘映射

上传人:汽*** 文档编号:393489201 上传时间:2023-02-20 格式:DOC 页数:2 大小:24.50KB
返回 下载 相关 举报
Java中实现鼠标模拟与键盘映射_第1页
第1页 / 共2页
Java中实现鼠标模拟与键盘映射_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java中实现鼠标模拟与键盘映射》由会员分享,可在线阅读,更多相关《Java中实现鼠标模拟与键盘映射(2页珍藏版)》请在金锄头文库上搜索。

1、Java中实现鼠标模拟与键盘映射关键字:java鼠标模拟键盘映射JavaSDK1.3以后实现了Robot类。此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot的主要目的是便于Java平台实现自动测试。使用该类生成输入事件与将事件发送到事件是在平台的本机输入队列中生成的。标光标,而不是只生成鼠标移动事件。Robot中主要的鼠标和键盘控制方法有:voidkeyPress(intkeycode)voidkeyRelease(intkeycode)*voidmouseMove(intx,inty)voidmousePress(intbuttons)v

2、oidmouseRelease(intbuttons)voidmouseWheel(intwheelAmt)AWT事件队列或AWT组件的区别在于:例如,Robot.mouseMove将实际移动鼠按下给定的键。释放给定的键。将鼠标指针移动到给定屏幕坐标按下一个或多个鼠标按钮。释放一个或多个鼠标按钮。在配有滚轮的鼠标上旋转滚轮。下面就让我们来实战鼠标控制,实现一个简单的鼠标控制程序MouseController程序功能很简单:随机移动鼠标并点击左键。代码如下:importjava.awt.AWTException;importjava.awt.Dimension;importjava.awt.Ro

3、bot;importjava.awt.Toolkit;importjava.awt.event.lnputEvent;importjava.util.Random;/*authorXiaofengWang*/publicclassMouseControllerimplementsRunnableprivateDimensiondim;privateRandomrand;privateRobotrobot;privatevolatilebooleanstop=false;/*CreatesanewinstanceofMain*/publicMouseController()dim=Toolkit

4、.getDefaultToolkit().getScreenSize();rand=newRandom();tryrobot=newRobot();catch(AWTExceptionex)ex.printStackTrace();publicvoidrun()while(!stop)intx=rand.nextInt(dim.width);inty=rand.nextInt(dim.height);robot.mouseMove(x,y);robot.mousePress(InputEvent.BUTTON1_MASK);tryThread.sleep(3000);catch(Interru

5、ptedExceptionex)ex.printStackTrace();publicsynchronizedvoidstop()stop=true;/*paramargsthecommandlinearguments*/publicstaticvoidmain(Stringargs)MouseControllermc=newMouseController();ThreadmcThread=newThread(mc);System.out.println(MouseControllerstart);mcThread.start();tryThread.sleep(60000);catch(In

6、terruptedExceptionex)ex.printStackTrace();mc.stop();System.out.println(MouseControllerstoped);当然键盘映射也类似,无非是使用voidkeyPress(intkeycode)现在实现了控制鼠标和键盘,接下了我们要获取操作后的效果(屏幕截图)。好在Robot类也提供了一个方法:BufferedImagecreateScreenCapture(RectanglescreenRect);可以直接将全屏幕或某个屏幕区域的像素拷贝到一个BufferedImage对象中。好,下面实战使用robot截屏,实现Capt

7、ure程序,每隔1秒截屏一次。代码如下:* /*CreatesnewformCapture*/publicCapture()initComponents();tryrobot=newRobot();catch(AWTExceptionex)ex.printStackTrace();dim=Toolkit.getDefaultToolkit().getScreenSize();/*Thismethodiscalledfromwithintheconstructortoinitializetheform.* WARNING:DoNOTmodifythiscode.Thecontentofthism

8、ethodisalwaysregeneratedbytheFormEditor.*/privatevoidinitComponents()screenCanvas=newjava.awt.Canvas();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);stop=newjavax.swing.GroupLayout(getContentPane();getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParall

9、elGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(screenCanvas,javax.swing.GroupLayout.PREFERRED_SIZE,519,javax.swing.GroupLayout.PREFERRED_SIZE);layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(screenCanvas,javax.swing.GroupLay

10、out.PREFERRED_SIZE,434,javax.swing.GroupLayout.PREFERRED_SIZE);pack();/*paramargsthecommandlinearguments*/publicstaticvoidmain(Stringargs)finalCapturecapture=newCapture();java.awt.EventQueue.invokeLater(newRunnable()publicvoidrun()capture.setVisible(true););ThreadcutThread=newThread(capture);cutThre

11、ad.start();publicvoidrun()stop=false;while(!stop)BufferedImagebImage=robot.createScreenCapture(newRectangle(dim.width,dim.height);Graphicsg=this.screenCanvas.getGraphics();g.drawImage(bImage,0,0,this);tryThread.sleep(1000);catch(InterruptedExceptionex)ex.printStackTrace();privatesynchronizedvoidstop()stop=true;/变量声明-不进行修改privatejava.awt.CanvasscreenCanvas;/变量声明结束privatevolatilebooleanstop;privateRobotrobot;privateDimensiondim;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号