- 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を作成します。
 - 
メソッドのサマリー修飾子と型 メソッド 説明 MultiResolutionImagecreateMultiResolutionScreenCapture(Rectangle screenRect)スクリーンから読み取るピクセル・イメージを作成します。BufferedImagecreateScreenCapture(Rectangle screenRect)スクリーンから読み取るピクセルを含むイメージを作成します。voiddelay(int ms)指定時間スリープします。intgetAutoDelay()イベント生成後、このRobotがスリープする時間をミリ秒で返します。ColorgetPixelColor(int x, int y)指定されたスクリーン座標でピクセルの色を返します。booleanisAutoWaitForIdle()イベントを生成したあと、このRobotがwaitForIdleを自動的に呼び出すかどうかを返します。voidkeyPress(int keycode)指定されたキーを押します。voidkeyRelease(int keycode)指定されたキーを離します。voidmouseMove(int x, int y)指定したスクリーン座標にマウス・ポインタを移動します。voidmousePress(int buttons)1つまたは複数のマウス・ボタンを押します。voidmouseRelease(int buttons)1つまたは複数のマウス・ボタンを離します。voidmouseWheel(int wheelAmt)ホイール・マウスのホイール・スクロールを回転させます。voidsetAutoDelay(int ms)イベント生成後、このRobotがスリープする時間をミリ秒で設定します。voidsetAutoWaitForIdle(boolean isOn)イベントを生成したあと、このRobotがwaitForIdleを自動的に呼び出すかどうかを設定します。StringtoString()このRobotの文字列表現を返します。voidwaitForIdle()現在イベント・キューにあるすべてのイベントが処理されるまで待機します。
 
- 
- 
- 
コンストラクタの詳細- 
Robotpublic Robot() throws AWTExceptionプライマリ・スクリーンの座標システムでRobotオブジェクトを構築します。- 例外:
- AWTException- プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる
- SecurityException-- createRobotアクセス権が許可されない場合
- 関連項目:
- GraphicsEnvironment.isHeadless(),- SecurityManager.checkPermission(java.security.Permission),- AWTPermission
 
 - 
Robotpublic Robot(GraphicsDevice screen) throws AWTException 指定されたスクリーン・デバイスにRobotを作成します。 mouseMove、getPixelColor、createScreenCaptureなどのRobotメソッド呼び出しに渡される座標は、指定されたスクリーンと同じ座標系にあると解釈されます。 プラットフォーム構成によっては、複数スクリーンで次のことが行えます。- 同じ座標系を共有し、仮想スクリーンを結合する
- 異なる座標系を使用し、個々のスクリーンのように動作する
 スクリーン・デバイスで座標系に影響がでるように再構成されている場合、既存のRobotオブジェクトの動作は保証されません。 - パラメータ:
- screen- Robotが動作する座標系を示す、スクリーンGraphicsDevice。
- 例外:
- AWTException- プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる。
- IllegalArgumentException-- screenがスクリーンGraphicsDeviceではない場合。
- SecurityException-- createRobotアクセス権が許可されない場合
- 関連項目:
- GraphicsEnvironment.isHeadless(),- GraphicsDevice,- SecurityManager.checkPermission(java.security.Permission),- AWTPermission
 
 
- 
 - 
メソッドの詳細- 
mouseMovepublic void mouseMove(int x, int y)指定したスクリーン座標にマウス・ポインタを移動します。- パラメータ:
- x- X位置
- y- Y位置
 
 - 
mousePresspublic void mousePress(int buttons) 1つまたは複数のマウス・ボタンを押します。 マウス・ボタンを離すにはmouseRelease(int)メソッドを使用する必要があります。- パラメータ:
- buttons- Buttonマスク。1つ以上のマウス・ボタン・マスクの組み合わせ。- buttonsパラメータとして有効な値の組み合わせのみの使用が許可されます。 有効な組み合わせは、- InputEvent.getMaskForButton(button)メソッドによって返された- InputEvent.BUTTON1_DOWN_MASK、- InputEvent.BUTTON2_DOWN_MASK、- InputEvent.BUTTON3_DOWN_MASK、および値で構成されます。 有効な組み合わせは、次のように- Toolkit.areExtraMouseButtonsEnabled()値によっても異なります。-  拡張マウス・ボタンのサポートがJavaでdisabledにされている場合は、標準ボタン・マスクInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASKのみを使用できます。
-  拡張マウス・ボタンのサポートがJavaでenabledにされている場合は、標準ボタン・マスクを使用でき、マウスに4つ以上のボタンがあれば、存在する拡張マウス・ボタンのマスクを使用できます。 そのようにして、1からMouseInfo.getNumberOfButtons()までの範囲のボタンに対応するボタン・マスクの使用が許可されます。InputEvent.getMaskForButton(button)メソッドを使用して、任意のマウス・ボタンのマスクをその番号で取得することをお薦めします。
 - また、次の標準のボタン・マスクも受け入れられます。 - InputEvent.BUTTON1_MASK
- InputEvent.BUTTON2_MASK
- InputEvent.BUTTON3_MASK
 - InputEvent.BUTTON1_DOWN_MASK、- InputEvent.BUTTON2_DOWN_MASK、- InputEvent.BUTTON3_DOWN_MASKを使用することをお薦めします。 拡張された- _DOWN_MASKまたは古い- _MASKのどちらかの値を使用するべきですが、これらの両方のモデルを混在させてはいけません。
-  拡張マウス・ボタンのサポートがJavaで
- 例外:
- IllegalArgumentException-- buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- disabledになっている場合
- IllegalArgumentException-- buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- enabledになっている場合
- 関連項目:
- mouseRelease(int),- InputEvent.getMaskForButton(int),- Toolkit.areExtraMouseButtonsEnabled(),- MouseInfo.getNumberOfButtons(),- MouseEvent
 
 - 
mouseReleasepublic void mouseRelease(int buttons) 1つまたは複数のマウス・ボタンを離します。- パラメータ:
- buttons- Buttonマスク。1つ以上のマウス・ボタン・マスクの組み合わせ。- buttonsパラメータとして有効な値の組み合わせのみの使用が許可されます。 有効な組み合わせは、- InputEvent.getMaskForButton(button)メソッドによって返された- InputEvent.BUTTON1_DOWN_MASK、- InputEvent.BUTTON2_DOWN_MASK、- InputEvent.BUTTON3_DOWN_MASK、および値で構成されます。 有効な組み合わせは、次のように- Toolkit.areExtraMouseButtonsEnabled()値によっても異なります。-  拡張マウス・ボタンのサポートがJavaでdisabledにされている場合は、標準ボタン・マスクInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASKのみを使用できます。
-  拡張マウス・ボタンのサポートがJavaでenabledにされている場合は、標準ボタン・マスクを使用でき、マウスに4つ以上のボタンがあれば、存在する拡張マウス・ボタンのマスクを使用できます。 そのようにして、1からMouseInfo.getNumberOfButtons()までの範囲のボタンに対応するボタン・マスクの使用が許可されます。InputEvent.getMaskForButton(button)メソッドを使用して、任意のマウス・ボタンのマスクをその番号で取得することをお薦めします。
 - また、次の標準のボタン・マスクも受け入れられます。 - InputEvent.BUTTON1_MASK
- InputEvent.BUTTON2_MASK
- InputEvent.BUTTON3_MASK
 - InputEvent.BUTTON1_DOWN_MASK、- InputEvent.BUTTON2_DOWN_MASK、- InputEvent.BUTTON3_DOWN_MASKを使用することをお薦めします。 拡張された- _DOWN_MASKまたは古い- _MASKのどちらかの値を使用するべきですが、これらの両方のモデルを混在させてはいけません。
-  拡張マウス・ボタンのサポートがJavaで
- 例外:
- IllegalArgumentException-- buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- disabledになっている場合
- IllegalArgumentException-- buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- enabledになっている場合
- 関連項目:
- mousePress(int),- InputEvent.getMaskForButton(int),- Toolkit.areExtraMouseButtonsEnabled(),- MouseInfo.getNumberOfButtons(),- MouseEvent
 
 - 
mouseWheelpublic void mouseWheel(int wheelAmt) ホイール・マウスのホイール・スクロールを回転させます。- パラメータ:
- wheelAmt- マウス・ホイールを移動する「ノッチ」の数。負の値はユーザーから見て上または離れる方向への移動を示し、正の値はユーザーから見て下または近づく方向への移動を示す。
- 導入されたバージョン:
- 1.4
 
 - 
keyPresspublic void keyPress(int keycode) 指定されたキーを押します。 キーを離すにはkeyReleaseメソッドを使用する必要があります。複数の物理的なキーが関連付けられているキー・コード(たとえば、 KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。- パラメータ:
- keycode- 押す対象のキー(- KeyEvent.VK_Aなど)
- 例外:
- IllegalArgumentException-- keycodeが有効なキーでない場合
- 関連項目:
- keyRelease(int),- KeyEvent
 
 - 
keyReleasepublic void keyRelease(int keycode) 指定されたキーを離します。複数の物理的なキーが関連付けられているキー・コード(たとえば、 KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。- パラメータ:
- keycode- 離す対象のキー(- KeyEvent.VK_Aなど)
- 例外:
- IllegalArgumentException-- keycodeが有効なキーでない場合
- 関連項目:
- keyPress(int),- KeyEvent
 
 - 
getPixelColorpublic Color getPixelColor(int x, int y) 指定されたスクリーン座標でピクセルの色を返します。- パラメータ:
- x- ピクセルのX位置
- y- ピクセルのY位置
- 戻り値:
- ピクセルの色
 
 - 
createScreenCapturepublic BufferedImage createScreenCapture(Rectangle screenRect) スクリーンから読み取るピクセル・イメージを作成します。 このイメージにはマウス・カーソルが含まれません。- パラメータ:
- screenRect- スクリーン座標で取り込むRect
- 戻り値:
- 取り込んだイメージ
- 例外:
- IllegalArgumentException-- screenRectの幅および高さが0以下の場合
- SecurityException-- readDisplayPixelsアクセス権が許可されない場合
- 関連項目:
- SecurityManager.checkPermission(java.security.Permission),- AWTPermission
 
 - 
createMultiResolutionScreenCapturepublic MultiResolutionImage createMultiResolutionScreenCapture(Rectangle screenRect) スクリーンから読み取るピクセルを含むイメージを作成します。 このイメージにはマウス・カーソルが含まれません。 このメソッドは、ユーザー空間から画面(device)空間へのスケーリング変換がある場合に使用できます。 通常、これはディスプレイが高解像度の画面であることを意味しますが、厳密にはそのような変換がある場合を意味します。MultiResolutionImageを返します。スケールされていないディスプレイの場合、 MultiResolutionImageには1つのイメージ・バリアントがあります:- ユーザーが指定したサイズのベース・イメージ。
 スケーリング変換がある高解像度ディスプレイの場合、 MultiResolutionImageには2つのイメージ・バリアントがあります:- ユーザーが指定したサイズのベース・イメージ。 これは画面からスケーリングされます。
- デバイス・サイズ・ピクセルのネイティブ・デバイス解像度イメージ。
 例: Image nativeResImage; MultiResolutionImage mrImage = robot.createMultiResolutionScreenCapture(frame.getBounds()); List<Image> resolutionVariants = mrImage.getResolutionVariants(); if (resolutionVariants.size() > 1) { nativeResImage = resolutionVariants.get(1); } else { nativeResImage = resolutionVariants.get(0); }- パラメータ:
- screenRect- スクリーン座標で取り込むRect
- 戻り値:
- 取り込んだイメージ
- 例外:
- IllegalArgumentException-- screenRectの幅および高さが0以下の場合
- SecurityException-- readDisplayPixelsアクセス権が許可されない場合
- 導入されたバージョン:
- 9
- 関連項目:
- SecurityManager.checkPermission(java.security.Permission),- AWTPermission
 
 - 
isAutoWaitForIdlepublic boolean isAutoWaitForIdle() イベントを生成したあと、このRobotがwaitForIdleを自動的に呼び出すかどうかを返します。- 戻り値:
- waitForIdleが自動で呼び出されるかどうか
 
 - 
setAutoWaitForIdlepublic void setAutoWaitForIdle(boolean isOn) イベントを生成したあと、このRobotがwaitForIdleを自動的に呼び出すかどうかを設定します。- パラメータ:
- isOn-- waitForIdleが自動で起動されるかどうか
 
 - 
getAutoDelaypublic int getAutoDelay() イベント生成後、このRobotがスリープする時間をミリ秒で返します。- 戻り値:
- 遅延時間(ミリ秒単位)
 
 - 
setAutoDelaypublic void setAutoDelay(int ms) イベント生成後、このRobotがスリープする時間をミリ秒で設定します。- パラメータ:
- ms- 遅延時間(ミリ秒単位)
- 例外:
- IllegalArgumentException-- msが0から60,000ミリ秒の範囲にない場合
 
 - 
delaypublic void delay(int ms) 指定時間スリープします。 発生する任意のInterruptedExceptionをキャッチするために、代わりにThread.sleep()が使用されます。- パラメータ:
- ms- ミリ秒単位のスリープ時間
- 例外:
- IllegalArgumentException-- msが0から60,000ミリ秒の範囲にない場合
- 関連項目:
- Thread.sleep(long)
 
 - 
waitForIdlepublic void waitForIdle() 現在イベント・キューにあるすべてのイベントが処理されるまで待機します。- 例外:
- IllegalThreadStateException- AWTイベント・ディスパッチ・スレッドに対して呼び出された場合
 
 
- 
 
-