Java 使用mousePress()方法时出错

Java 使用mousePress()方法时出错,java,mouseevent,awtrobot,Java,Mouseevent,Awtrobot,我正在尝试在按钮4上使用鼠标事件。使用时返回的值 int moused = MouseInfo.getNumberOfButtons(); 方法是5。除了右键单击的按钮4外,我不知道还有什么按钮;运行代码时,我会遇到以下错误: Exception in thread "main" java.lang.IllegalArgumentException: Invalid combinati on of button flags at java.awt.Robot.checkButt

我正在尝试在按钮4上使用鼠标事件。使用时返回的值

int moused = MouseInfo.getNumberOfButtons();
方法是5。除了右键单击的按钮4外,我不知道还有什么按钮;运行代码时,我会遇到以下错误:

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();        
}
}
}

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

int mask4 = InputEvent.getMaskForButton(4);
robot.mousePress(mask4);
robot.delay(75);
robot.mouseRelease(mask4);
与按钮编号相反,您需要传递掩码的原因是支持按钮的组合:

int mask1_and_2 = InputEvent.getMaskForButton(1) | InputEvent.getMaskForButton(2);

上面的遮罩对应于同时按下按钮1和2。

问题在于使用释放按钮

Robot autoPlay = new Robot();
autoPlay.setAutoDelay(500);

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

使用上面的代码片段,您的问题就会得到解决

我试过了,它返回了以下错误:RobotExp4.java:24:error:找不到符号int mask4=InputEvent.getMaskForButton(4);^符号:变量InputEvent位置:类RobotExp4 1错误