|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt
类 Robot
java.lang.Object java.awt.Robot
-
public class Robot
- extends Object
此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove
将实际移动鼠标光标,而不是只生成鼠标移动事件。
注意,某些平台需要特定权限或扩展来访问低级输入控件。如果当前平台配置不允许使用输入控件,那么试图构造 Robot 对象时将抛出 AWTException
。例如,如果 X 服务器不支持(或没有启用)XTEST 2.2 标准扩展,则 X-Window 系统会抛出异常。
出于自测试之外的目的而使用 Robot 的应用程序应妥善处理这些错误条件。
- 从以下版本开始:
- 1.3
构造方法摘要 | |
---|---|
Robot() 在基本屏幕坐标系统中构造一个 Robot 对象。 |
|
Robot(GraphicsDevice screen) 为给定屏幕设备创建一个 Robot 。 |
方法摘要 | |
---|---|
BufferedImage |
createScreenCapture(Rectangle screenRect) 创建包含从屏幕中读取的像素的图像。 |
void |
delay(int ms) 睡眠指定的时间。 |
int |
getAutoDelay() 返回此 Robot 在生成一个事件后睡眠的毫秒数。 |
Color |
getPixelColor(int x, int y) 返回给定屏幕坐标处的像素颜色。 |
boolean |
isAutoWaitForIdle() 返回此 Robot 在生成一个事件后是否自动调用 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) 设置此 Robot 在生成一个事件后睡眠的毫秒数。 |
void |
setAutoWaitForIdle(boolean isOn) 设置此 Robot 在生成一个事件后是否自动调用 waitForIdle 。 |
String |
toString() 返回此 Robot 的字符串表示形式。 |
void |
waitForIdle() 在处理完当前事件队列中的所有事件之前,一直等待。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
Robot
public Robot() throws AWTException
-
在基本屏幕坐标系统中构造一个 Robot 对象。
- 抛出:
-
AWTException
- 如果平台配置不允许使用低级输入控件。GraphicsEnvironment.isHeadless() 返回 true 时总是抛出此异常 -
SecurityException
- 如果没有授予createRobot
权限 - 另请参见:
-
GraphicsEnvironment.isHeadless()
,SecurityManager.checkPermission(java.security.Permission)
,AWTPermission
Robot
public Robot(GraphicsDevice screen) throws AWTException
-
为给定屏幕设备创建一个 Robot 。传递给 Robot 方法调用(如 mouseMove 和 createScreenCapture)的坐标将在与指定屏幕相同的坐标系统中解释。注意,根据平台配置,多个屏幕可以:
- 共享相同坐标系统,以形成一个合成虚拟屏幕
- 使用不同坐标系统作为单独的屏幕
如果因配置屏幕设备而影响了坐标系统,则现有 Robot 对象的行为是不确定的。
- 参数:
-
screen
- 一个屏幕 GraphicsDevice,指示 Robot 将在该坐标系统中进行操作。 - 抛出:
-
AWTException
- 如果平台配置不允许使用低级输入控件。GraphicsEnvironment.isHeadless() 返回 true 时总是抛出此异常。 -
IllegalArgumentException
- 如果screen
不是一个屏幕 GraphicsDevice。 -
SecurityException
- 如果没有授予createRobot
权限 - 另请参见:
-
GraphicsEnvironment.isHeadless()
,GraphicsDevice
,SecurityManager.checkPermission(java.security.Permission)
,AWTPermission
方法详细信息 |
---|
mouseMove
public void mouseMove(int x, int y)
- 将鼠标指针移动到给定屏幕坐标。
-
- 参数:
-
x
- X 坐标 -
y
- Y 坐标
mousePress
public void mousePress(int buttons)
-
按下一个或多个鼠标按钮。应该使用
mouseRelease
方法释放鼠标按钮。 -
- 参数:
-
buttons
- Button 掩码;一个或多个以下标志的组合:InputEvent.BUTTON1_MASK
InputEvent.BUTTON2_MASK
InputEvent.BUTTON3_MASK
- 抛出:
-
IllegalArgumentException
- 如果按钮掩码是无效组合 - 另请参见:
-
mouseRelease(int)
mouseRelease
public void mouseRelease(int buttons)
- 释放一个或多个鼠标按钮。
-
- 参数:
-
buttons
- Button 掩码;一个或多个以下标志的组合:InputEvent.BUTTON1_MASK
InputEvent.BUTTON2_MASK
InputEvent.BUTTON3_MASK
- 抛出:
-
IllegalArgumentException
- 如果按钮掩码是无效组合 - 另请参见:
-
mousePress(int)
mouseWheel
public void mouseWheel(int wheelAmt)
- 在配有滚轮的鼠标上旋转滚轮。
-
- 参数:
-
wheelAmt
- 移动鼠标滚轮的“刻痕 (notch)”数,负值表示向上/远离用户的运动,正值表示向下/接近用户的运动。 - 从以下版本开始:
- 1.4
keyPress
public void keyPress(int keycode)
-
按下给定的键。应该使用
keyRelease
方法释放该键。拥有一个以上与之相关的物理键(例如,
KeyEvent.VK_SHIFT
可能指左 shift 键或右 shift 键)的键代码可能映射到左键。 -
- 参数:
-
keycode
- 要按下的键(例如,KeyEvent.VK_A
) - 抛出:
-
IllegalArgumentException
- 如果keycode
是一个无效的键 - 另请参见:
-
keyRelease(int)
,KeyEvent
keyRelease
public void keyRelease(int keycode)
-
释放给定的键。
拥有一个以上与之相关的物理键(例如,
KeyEvent.VK_SHIFT
可能指左 shift 键或右 shift 键)的键代码可能映射到左键。 -
- 参数:
-
keycode
- 要释放的键(例如,KeyEvent.VK_A
) - 抛出:
-
IllegalArgumentException
- 如果keycode
是一个无效的键 - 另请参见:
-
keyPress(int)
,KeyEvent