Java 模拟鼠标操作


-- 自己瞎写的望勿喷

public class Simulate {
	private  Robot robot = null;
	private int x;
	private int y;
	public  Simulate() {
		try {
			robot = new Robot();
		} catch (AWTException e) {
			e.printStackTrace();
		}
	}
		
	/**
	 * 操纵鼠标进行单击操作
	 * */
	public void click(int x,int y){
		
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		
	}
		
	/**
	 * 操纵鼠标进行双击操作
	 * */
	public void doubleclick(int x,int y){
		
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
	}
	
	/**
	 * 操纵鼠标点击后进行竖向的向下拖动(x,y)为元素坐标;n为目标坐标
	 * @throws Exception 
	 * */
	public void downDrag(int x,int y,int n) throws Exception{
		if(y<=n){
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		for(int i=y;i<=n;i++){
			Thread.sleep(2);
			System.out.println(i);
			robot.mouseMove(x,i);
			
			}
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		}else{
			System.out.println("坐标错误无法运行");
		}
	}
	
	/**
	 * 操纵鼠标点击后进行竖向的向下拖动(x,y)为元素坐标;n为目标坐标
	 * @throws Exception 
	 * */
	public void upDrag(int x,int y,int n) throws Exception{
		if(y>=n){
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		for(int i=y;i>=n;i--){
			Thread.sleep(2);
			System.out.println(i);
			robot.mouseMove(x,i);
			
			}
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		}else{
			System.out.println("坐标错误无法运行");
		}
	}
	
	/**
	 * 操纵鼠标点击后进行横向的向左拖动(x,y)为元素坐标;n为目标坐标
	 * @throws Exception 
	 * */
	public void leftDrag(int x,int y,int n) throws Exception{
		if(x>=n){
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		for(int i=x;i>=n;i--){
			Thread.sleep(2);
			System.out.println(i);
			robot.mouseMove(i,y);
			
			}
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		}else{
			System.out.println("坐标错误无法运行");
		}
	}
	
	/**
	 * 操纵鼠标点击后进行横向的向右拖动(x,y)为元素坐标;n为目标坐标
	 * @throws Exception 
	 * */
	public void rightDrag(int x,int y,int n) throws Exception{
		if(x<=n){
		robot.mouseMove(x,y);
		robot.mousePress(InputEvent.BUTTON1_MASK); 
		for(int i=x;i<=n;i++){
			Thread.sleep(2);
			System.out.println(i);
			robot.mouseMove(i,y);
			
			}
		robot.mouseRelease(InputEvent.BUTTON1_MASK); 
		}else{
			System.out.println("坐标错误无法运行");
		}
	}
	
	/**
	 * 输入字符串,进行输入操作,如机器运行较慢则不会出现输入失误情况
	 * @throws Exception 
	 * */
	public void importValue(String values) throws Exception{
		if(values.length()>=0){
		String value=values.toUpperCase();
		char [] crr=value.toCharArray();
		for(int i=0;i<=crr.length-1;i++){
			Thread.sleep(15);
			robot.keyPress((int)crr[i]);
			}
		}else{
			
			System.out.println("输入错误,请重新输入");
		}
		
	}
	
	
	
		/**
		 * 用户点击特殊按钮(此方法尚不完全,有待改进)
		 * */
		public void setDefaultValue(String value){
		value=value.toUpperCase();
		if(value.equals("F1")){robot.keyPress(KeyEvent.VK_F1);}
		else if(value.equals("F2")){robot.keyPress(KeyEvent.VK_F2);robot.keyRelease(KeyEvent.VK_F2);}
		else if(value.equals("F3")){robot.keyPress(KeyEvent.VK_F3);robot.keyRelease(KeyEvent.VK_F3);}
		else if(value.equals("F4")){robot.keyPress(KeyEvent.VK_F4);robot.keyRelease(KeyEvent.VK_F4);}
		else if(value.equals("F5")){robot.keyPress(KeyEvent.VK_F5);robot.keyRelease(KeyEvent.VK_F5);}
		else if(value.equals("F6")){robot.keyPress(KeyEvent.VK_F6);robot.keyRelease(KeyEvent.VK_F6);}
		else if(value.equals("F7")){robot.keyPress(KeyEvent.VK_F7);robot.keyRelease(KeyEvent.VK_F6);}
		else if(value.equals("F8")){robot.keyPress(KeyEvent.VK_F8);robot.keyRelease(KeyEvent.VK_F8);}
		else if(value.equals("SHIFT")){robot.keyPress(KeyEvent.VK_SHIFT);robot.keyRelease(KeyEvent.VK_SHIFT);}	
		else if(value.equals("TAB")){robot.keyPress(KeyEvent.VK_TAB);robot.keyRelease(KeyEvent.VK_TAB);}		
		else if(value.equals("BACK_SPACE")){robot.keyPress(KeyEvent.VK_BACK_SPACE);robot.keyRelease(KeyEvent.VK_BACK_SPACE);}		
		else if(value.equals("SPACE")){robot.keyPress(KeyEvent.VK_SPACE);robot.keyRelease(KeyEvent.VK_SPACE);}
		else if(value.equals("ENTER")){robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER);}
		else{ System.out.println("此字符尚不支持此操作");}
	}
		
		
	
}


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值