您的位置:首页 > 编程语言 > Java开发

Java中的鼠标事件和键盘事件

2010-04-19 07:59 405 查看
http://www.cnblogs.com/rookieport/archive/2005/09/05/163393.html

留下原创作者的链接 10个例子

另外还有一篇

//利用 java.awt.Robot 类来自动完成一些键盘或鼠标的动作,下面是一个小例子
//程序流程:模拟鼠标左键点击 开始-->运行-->CMD-->DIR-->CLS-->EXIT
//模拟右键点击 移动到右下角-->右键点击-->调整日期和时间-->退出
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

//Test.java
public class Test {
public static void main(String[] args) throws Exception {
final Robot rb = new Robot();
new Thread(){
public void run(){
rb.delay(2000);
//回车
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预./n如果不能正常执行程序,请先关闭输入法");

//设置开始菜单的大概位置
int x = 40;
int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;

//鼠标移动到开始菜单,
rb.mouseMove(x,y);
rb.delay(500);

//单击三次开始菜单
for(int i=0; i<3; i++)
pressMouse(rb,InputEvent.BUTTON1_MASK,500);
rb.delay(1000);

//运行CMD命令  r  cmd enter
int[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};
pressKeys(rb,ks,500);
rb.mouseMove(400,400);
rb.delay(500);
//运行DIR命令  dir enter
ks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//运行CLS命令 cls enter
ks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//运行EXIT命令 exit enter
ks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);

//右键测试
x=Toolkit.getDefaultToolkit().getScreenSize().width-10;
rb.mouseMove(x, y);
//如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标
pressMouse(rb,InputEvent.BUTTON3_MASK,500);
//显示日期调整对话框 a
pressKeys(rb,new int[]{KeyEvent.VK_A},1000);
rb.delay(2000);
pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);
rb.delay(1000);
new Thread(){
public void run(){
rb.delay(1000);
//回车
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"演示完毕!");
}
//鼠标单击,要双击就连续调用
private static void pressMouse(Robot r,int m,int delay){
r.mousePress(m);
r.delay(10);
r.mouseRelease(m);
r.delay(delay);
}
//键盘输入
private static void pressKeys(Robot r,int[] ks,int delay){
for(int i=0; i<ks.length; i++){
r.keyPress(ks[i]);
r.delay(10);
r.keyRelease(ks[i]);
r.delay(delay);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: