public class Robot extends Object
使用类来生成输入事件不同于发帖事件的AWT事件队列或AWT组件,事件是在平台的本地输入队列生成。例如,Robot.mouseMove会移动鼠标而不是生成鼠标移动事件。
请注意,一些平台需要特殊的权限或扩展以访问低级别的输入控制。如果当前平台配置不允许输入控件,一个AWTException将试图构建机器人对象时引发。例如,X-Window系统如果Xtest 2.2标准扩展不支持抛出异常(或不启用)由X服务器。
除了自我测试以外使用机器人的应用程序应该优雅地处理这些错误条件。
| Constructor and Description |
|---|
Robot()
在主屏幕坐标系中构造一个机器人对象。
|
Robot(GraphicsDevice screen)
为给定的屏幕设备创建一个机器人。
|
| Modifier and Type | Method and Description |
|---|---|
BufferedImage |
createScreenCapture(Rectangle screenRect)
创建一个包含从屏幕上读取的像素的图像。
|
void |
delay(int ms)
为指定的时间睡觉。
|
int |
getAutoDelay()
返回这个机器人在生成一个事件后的毫秒数。
|
Color |
getPixelColor(int x, int y)
返回给定屏幕坐标下的像素的颜色。
|
boolean |
isAutoWaitForIdle()
返回是否该机器人自动调用
waitForIdle生成事件后。
|
void |
keyPress(int keycode)
按一个给定的键。
|
void |
keyRelease(int keycode)
释放一个给定的键。
|
void |
mouseMove(int x, int y)
将鼠标指针移动到给定的屏幕坐标。
|
void |
mousePress(int buttons)
按一个或多个鼠标按钮。
|
void |
mouseRelease(int buttons)
释放一个或多个鼠标按钮。
|
void |
mouseWheel(int wheelAmt)
在轮子上的旋转滚轮上装备的老鼠。
|
void |
setAutoDelay(int ms)
设置这个机器人在生成事件后的毫秒数。
|
void |
setAutoWaitForIdle(boolean isOn)
设置是否自动调用这个机器人
waitForIdle生成事件后。
|
String |
toString()
返回此机器人的字符串表示形式。
|
void |
waitForIdle()
等待,直到当前事件队列上的所有事件都被处理过了。
|
public Robot()
throws AWTException
AWTException如果平台配置不允许输入低电平控制。这个例外总是graphicsenvironment isheadless()返回true时抛出。
SecurityException -如果
createRobot没有得到许可
GraphicsEnvironment.isHeadless(),
SecurityManager.checkPermission(java.security.Permission),
AWTPermission
public Robot(GraphicsDevice screen) throws AWTException
如果屏幕设备重新配置这样的坐标系统受到影响,现有机器人对象的行为是未定义的。
screen -屏幕graphicsdevice显示的坐标系统的机器人将在。
AWTException如果平台配置不允许输入低电平控制。这个例外总是graphicsenvironment isheadless()返回true时抛出。
IllegalArgumentException -如果
screen不是屏幕graphicsdevice。
SecurityException -如果
createRobot没有得到许可
GraphicsEnvironment.isHeadless(),
GraphicsDevice,
SecurityManager.checkPermission(java.security.Permission),
AWTPermission
public void mouseMove(int x,
int y)
x X位置
y Y位置
public void mousePress(int buttons)
mouseRelease(int)方法。
buttons -按钮的面具;一个或多个的组合键的面具。
它只允许使用一个有效值的组合作为buttons参数。一个有效的组合,包括InputEvent.BUTTON1_DOWN_MASK,InputEvent.BUTTON2_DOWN_MASK,由InputEvent.getMaskForButton(button)方法返回InputEvent.BUTTON3_DOWN_MASK和价值。有效组合还取决于Toolkit.areExtraMouseButtonsEnabled()值如下:
disabled通过java然后只允许使用以下标准按钮面具:InputEvent.BUTTON1_DOWN_MASK,InputEvent.BUTTON2_DOWN_MASK,InputEvent.BUTTON3_DOWN_MASK。enabled通过java则允许使用标准按钮的面具和面具已有扩展的鼠标按钮,如果鼠标有三个按钮。这样,可以使用按钮的面具在范围从1到MouseInfo.getNumberOfButtons()对应的按钮。InputEvent.getMaskForButton(button)方法获得任何鼠标按键的数量的面具。下面的标准按钮掩码也被接受:
InputEvent.BUTTON1_MASKInputEvent.BUTTON2_MASKInputEvent.BUTTON3_MASKInputEvent.BUTTON1_DOWN_MASK,
InputEvent.BUTTON2_DOWN_MASK,
InputEvent.BUTTON3_DOWN_MASK相反。无论是扩展
_DOWN_MASK或老
_MASK值应该被使用,但这些模型不能混合。
IllegalArgumentException -如果
buttons面膜含有额外的鼠标按钮和鼠标按钮支持扩展的面具是用java
disabled
IllegalArgumentException -如果
buttons面膜面膜额外的鼠标按钮不在鼠标和鼠标按钮的存在是
enabled扩展支持的java
mouseRelease(int),
InputEvent.getMaskForButton(int),
Toolkit.areExtraMouseButtonsEnabled(),
MouseInfo.getNumberOfButtons(),
MouseEvent
public void mouseRelease(int buttons)
buttons -按钮的面具;一个或多个的组合键的面具。
它只允许使用一个有效值的组合作为buttons参数。一个有效的组合,包括InputEvent.BUTTON1_DOWN_MASK,InputEvent.BUTTON2_DOWN_MASK,由InputEvent.getMaskForButton(button)方法返回InputEvent.BUTTON3_DOWN_MASK和价值。有效组合还取决于Toolkit.areExtraMouseButtonsEnabled()值如下:
disabled通过java然后只允许使用以下标准按钮面具:InputEvent.BUTTON1_DOWN_MASK,InputEvent.BUTTON2_DOWN_MASK,InputEvent.BUTTON3_DOWN_MASK。enabled通过java则允许使用标准按钮的面具和面具已有扩展的鼠标按钮,如果鼠标有三个按钮。这样,可以使用按钮的面具在范围从1到MouseInfo.getNumberOfButtons()对应的按钮。InputEvent.getMaskForButton(button)方法获得任何鼠标按键的数量的面具。下面的标准按钮掩码也被接受:
InputEvent.BUTTON1_MASKInputEvent.BUTTON2_MASKInputEvent.BUTTON3_MASKInputEvent.BUTTON1_DOWN_MASK,
InputEvent.BUTTON2_DOWN_MASK,
InputEvent.BUTTON3_DOWN_MASK相反。无论是扩展
_DOWN_MASK或老
_MASK值应该被使用,但这些模型不能混合。
IllegalArgumentException -如果
buttons面膜含有额外的鼠标按钮和鼠标按钮支持扩展的面具是用java
disabled
IllegalArgumentException -如果
buttons面膜面膜额外的鼠标按钮不在鼠标和鼠标按钮的存在是
enabled扩展支持的java
mousePress(int),
InputEvent.getMaskForButton(int),
Toolkit.areExtraMouseButtonsEnabled(),
MouseInfo.getNumberOfButtons(),
MouseEvent
public void mouseWheel(int wheelAmt)
wheelAmt -“缺口”移动鼠标滚轮的负值表明运动/远离用户数,正值表示运动向下/向用户。
public void keyPress(int keycode)
keyRelease方法。
有更多比与它们相关联的物理密钥代码(如KeyEvent.VK_SHIFT可能意味着无论是左或右Shift键)将Map左键。
keycode键按下(如
KeyEvent.VK_A)
IllegalArgumentException -如果
keycode不是有效的关键
keyRelease(int),
KeyEvent
public void keyRelease(int keycode)
有更多比与它们相关联的物理密钥代码(如KeyEvent.VK_SHIFT可能意味着无论是左或右Shift键)将Map左键。
keycode键释放(如
KeyEvent.VK_A)
IllegalArgumentException -如果
keycode不是有效的关键
keyPress(int),
KeyEvent
public Color getPixelColor(int x, int y)
x -像素的位置
y Y位置像素
public BufferedImage createScreenCapture(Rectangle screenRect)
screenRect直接捕捉屏幕坐标
IllegalArgumentException -如果
screenRect宽度和高度不大于零
SecurityException -如果
readDisplayPixels没有得到许可
SecurityManager.checkPermission(java.security.Permission),
AWTPermission
public boolean isAutoWaitForIdle()
waitForIdle生成事件后。
waitForIdle自动调用
public void setAutoWaitForIdle(boolean isOn)
waitForIdle生成事件后。
isOn是否
waitForIdle自动调用
public int getAutoDelay()
public void setAutoDelay(int ms)
IllegalArgumentException -如果
ms不是0和60000毫秒之间
public void delay(int ms)
InterruptedExceptions发生,
Thread.sleep()可以代替。
ms -睡眠时间以毫秒为单位
IllegalArgumentException -如果
ms不是0和60000毫秒之间
Thread.sleep(long)
public void waitForIdle()
IllegalThreadStateException如果呼吁awt事件调度线程
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.