首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mousePress()方法时出错

使用mousePress()方法时出错
EN

Stack Overflow用户
提问于 2014-06-08 12:32:20
回答 2查看 2.2K关注 0票数 1

我试图在按钮4上获得一个鼠标事件。

代码语言:javascript
复制
int moused = MouseInfo.getNumberOfButtons();

方法是5。除了按钮4(即右键单击)之外,我无法计算出任何按钮是什么;运行我得到的错误代码:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException: Invalid combinati
on of button flags
        at java.awt.Robot.checkButtonsArgument(Robot.java:324)
        at java.awt.Robot.mousePress(Robot.java:260)
        at RobotExp4.main(RobotExp4.java:23)

import java.awt.*;
import java.awt.event.KeyEvent;
public class RobotExp4{
public static void main(String [] args){
try{
    Robot robot = new Robot();
    System.out.println("7 Seconds after this message appears the robot will start to open a browser and make a search.");
    robot.delay(7000);
    robot.keyPress(KeyEvent.VK_WINDOWS);
    robot.keyRelease(KeyEvent.VK_WINDOWS);
    robot.delay(1000);
    robot.keyPress(KeyEvent.VK_C);
    robot.keyRelease(KeyEvent.VK_C);
    robot.delay(150);
    robot.keyPress(KeyEvent.VK_M);
    robot.keyRelease(KeyEvent.VK_M);
    robot.delay(150);
    robot.keyPress(KeyEvent.VK_D);
    robot.keyRelease(KeyEvent.VK_D);
    robot.delay(5000);
    robot.mouseMove(1340, 192);
    robot.delay(200);
    robot.mousePress(5);
    robot.delay(75);
    robot.mouseRelease(5);

}catch(AWTException e){
    e.printStackTrace();        
}
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-08 12:44:32

您需要传递mousePress调用InputEvent.getMaskForButton的结果,如下所示:

代码语言:javascript
复制
int mask4 = InputEvent.getMaskForButton(4);
robot.mousePress(mask4);
robot.delay(75);
robot.mouseRelease(mask4);

您需要传递一个掩码(而不是按钮号)的原因是为了支持按钮的组合:

代码语言:javascript
复制
int mask1_and_2 = InputEvent.getMaskForButton(1) | InputEvent.getMaskForButton(2);

上面的掩码对应于同时按下按钮1和2。

票数 2
EN

Stack Overflow用户

发布于 2017-03-06 10:42:27

问题在于使用发布按钮。

代码语言:javascript
复制
Robot autoPlay = new Robot();
autoPlay.setAutoDelay(500);

autoPlay.mousePress(InputEvent.BUTTON3_MASK);
autoPlay.mouseRelease(InputEvent.BUTTON3_MASK);

使用上面的片段,您的问题将得到解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24106182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档