java.awt.robot api_java.awt 类 Robot - Java 中文参考手册

java.lang.Object

c8e9f4e075d37a0af332e4af80182959.gifjava.awt.Robot

public class Robotextends Object

此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。

使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove 将实际移动鼠标光标,而不是只生成鼠标移动事件。

注意,某些平台需要特定权限或扩展来访问低级输入控件。如果当前平台配置不允许使用输入控件,那么试图构造 Robot 对象时将抛出 AWTException。例如,如果 X 服务器不支持(或没有启用)XTEST 2.2 标准扩展,则 X-Window 系统会抛出异常。

出于自测试之外的目的而使用 Robot 的应用程序应妥善处理这些错误条件。

从以下版本开始:

1.3

构造方法摘要

Robot()

在基本屏幕坐标系统中构造一个 Robot 对象。

Robot(GraphicsDevicescreen)

为给定屏幕设备创建一个 Robot 。

方法摘要

BufferedImage

createScreenCapture(RectanglescreenRect)

创建包含从屏幕中读取的像素的图像。

void

delay(intms)

睡眠指定的时间。

int

getAutoDelay()

返回此 Robot 在生成一个事件后睡眠的毫秒数。

Color

getPixelColor(intx,

inty)

返回给定屏幕坐标处的像素颜色。

boolean

isAutoWaitForIdle()

返回此 Robot 在生成一个事件后是否自动调用 waitForIdle。

void

keyPress(intkeycode)

按下给定的键。

void

keyRelease(intkeycode)

释放给定的键。

void

mouseMove(intx,

inty)

将鼠标指针移动到给定屏幕坐标。

void

mousePress(intbuttons)

按下一个或多个鼠标按钮。

void

mouseRelease(intbuttons)

释放一个或多个鼠标按钮。

void

mouseWheel(intwheelAmt)

在配有滚轮的鼠标上旋转滚轮。

void

setAutoDelay(intms)

设置此 Robot 在生成一个事件后睡眠的毫秒数。

void

setAutoWaitForIdle(booleanisOn)

设置此 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(GraphicsDevicescreen)

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(intx,

inty)

将鼠标指针移动到给定屏幕坐标。

参数:x – X 坐标y – Y 坐标

mousePress

public void mousePress(intbuttons)

按下一个或多个鼠标按钮。应该使用 mouseRelease 方法释放鼠标按钮。

参数:buttons – Button 掩码;一个或多个以下标志的组合:

InputEvent.BUTTON1_MASK

InputEvent.BUTTON2_MASK

InputEvent.BUTTON3_MASK抛出:IllegalArgumentException – 如果按钮掩码是无效组合另请参见:mouseRelease(int)

mouseRelease

public void mouseRelease(intbuttons)

释放一个或多个鼠标按钮。

参数:buttons – Button 掩码;一个或多个以下标志的组合:

InputEvent.BUTTON1_MASK

InputEvent.BUTTON2_MASK

InputEvent.BUTTON3_MASK抛出:IllegalArgumentException – 如果按钮掩码是无效组合另请参见:mousePress(int)

mouseWheel

public void mouseWheel(intwheelAmt)

在配有滚轮的鼠标上旋转滚轮。

参数:wheelAmt – 移动鼠标滚轮的“刻痕 (notch)”数,负值表示向上/远离用户的运动,正值表示向下/接近用户的运动。从以下版本开始:

1.4

keyPress

public void keyPress(intkeycode)

按下给定的键。应该使用 keyRelease 方法释放该键。

拥有一个以上与之相关的物理键(例如,KeyEvent.VK_SHIFT 可能指左 shift 键或右 shift 键)的键代码可能映射到左键。

参数:keycode – 要按下的键(例如,KeyEvent.VK_A)抛出:IllegalArgumentException – 如果 keycode 是一个无效的键另请参见:keyRelease(int),

KeyEvent

keyRelease

public void keyRelease(intkeycode)

释放给定的键。

拥有一个以上与之相关的物理键(例如,KeyEvent.VK_SHIFT 可能指左 shift 键或右 shift 键)的键代码可能映射到左键。

参数:keycode – 要释放的键(例如,KeyEvent.VK_A)抛出:IllegalArgumentException – 如果 keycode 是一个无效的键另请参见:keyPress(int),

KeyEvent

getPixelColor

public Color getPixelColor(intx,

inty)

返回给定屏幕坐标处的像素颜色。

参数:x – 像素的 X 位置y – 像素的 Y 位置返回:像素的颜色

createScreenCapture

public BufferedImage createScreenCapture(RectanglescreenRect)

创建包含从屏幕中读取的像素的图像。该图像不包括鼠标光标。

参数:screenRect – 将在屏幕坐标中捕获的 Rect返回:捕获的图像抛出:IllegalArgumentException – 如果 screenRect 的宽度和高度不大于零

SecurityException – 如果没有授予 readDisplayPixels 权限另请参见:SecurityManager.checkPermission(java.security.Permission),

AWTPermission

isAutoWaitForIdle

public boolean isAutoWaitForIdle()

返回此 Robot 在生成一个事件后是否自动调用 waitForIdle。

返回:是否自动调用 waitForIdle

setAutoWaitForIdle

public void setAutoWaitForIdle(booleanisOn)

设置此 Robot 在生成一个事件后是否自动调用 waitForIdle。

参数:isOn – 是否自动调用 waitForIdle

getAutoDelay

public int getAutoDelay()

返回此 Robot 在生成一个事件后睡眠的毫秒数。

setAutoDelay

public void setAutoDelay(intms)

设置此 Robot 在生成一个事件后睡眠的毫秒数。

抛出:IllegalArgumentException – 如果 ms 不在 0 到 60,000 毫秒的范围内

delay

public void delay(intms)

睡眠指定的时间。为了捕获发生的所有 InterruptedException,可以使用 Thread.sleep() 替代。

参数:ms – 睡眠的时间,以毫秒为单位抛出:IllegalArgumentException – 如果 ms 不在 0 到 60,000 毫秒的范围内另请参见:Thread.sleep(long)

waitForIdle

public void waitForIdle()

在处理完当前事件队列中的所有事件之前,一直等待。

抛出:IllegalThreadStateException – 如果调用 AWT 事件指派线程

toString

public String toString()

返回此 Robot 的字符串表示形式。

覆盖:类 Object 中的 toString

返回:字符串表示形式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值