クラスを使用して、AWTイベント・キューへのイベント転送またはプラットフォームのネイティブな入力キューで生成されるAWTコンポーネントとは異なる、入力イベントを生成します。 たとえばRobot.mouseMoveでは、マウスの移動イベントを生成するだけではなく、マウスのカーソルを実際に動かします。 
 
 一部のプラットフォームでは、低レベル入力制御にアクセスするための、特別な特権または拡張機能が必要です。 現在のプラットフォーム構成では入力制御を行えない場合、Robotオブジェクトを構築しようとするとAWTExceptionがスローされます。 たとえば、XサーバーでXTEST 2.2標準拡張機能がサポートされていない、または使用できない場合、X Windowシステムは例外をスローします。 
 
セルフ・テスト以外の目的でRobotを使用するアプリケーションでは、これらの例外条件を正常に処理する必要があります。
プラットフォームおよびデスクトップ環境では、Robotクラスのすべての機能を実装するために必要なアクセスに制限または制限が課される場合があります。 たとえば:
- 実行中のアプリケーションによって所有されていないデスクトップまたはデスクトップ上のウィンドウの内容にアクセスできないようにします。
- ウィンドウ装飾を非所有コンテンツとして扱う。
- ウィンドウを操作するための特定のリクエストを無視または制限します。
- ロボットの特定のリクエストを無視または制限すると、キーボードやマウスなどに関連する (合成)イベントが生成されます。
- ウィンドウの内容、アプリケーション所有のコンテンツ、またはイベントの限定的な合成を実行するための特定の権限またはグローバル権限が必要です。
- 毎回必要
- もしくはアプリケーション期間中、
- または複数のユーザー・デスクトップ・セッションで永続
- ファイングレイン権限
- 特定のバイナリ・アプリケーション、またはバイナリ・アプリケーションのクラスに関連付けられます。
- 導入されたバージョン:
- 1.3
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明Robot()プライマリ・スクリーンの座標システムでRobotオブジェクトを構築します。Robot(GraphicsDevice screen) 指定されたスクリーン・デバイスにRobotを作成します。
- 
メソッドのサマリー修飾子と型メソッド説明createMultiResolutionScreenCapture(Rectangle screenRect) スクリーンから読み取るピクセルを含むイメージを作成します。createScreenCapture(Rectangle screenRect) スクリーンから読み取るピクセルを含むイメージを作成します。voiddelay(int ms) 指定時間スリープします。intイベント生成後、このRobotがスリープする時間をミリ秒で返します。getPixelColor(int x, int y) 指定されたスクリーン座標でピクセルの色を返します。booleanイベントを生成したあと、この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を自動的に呼び出すかどうかを設定します。toString()このRobotの文字列表現を返します。void現在イベント・キューにあるすべてのイベントが処理されるまで待機します。
- 
コンストラクタの詳細- 
Robotpublic Robot() throws AWTExceptionプライマリ・スクリーンの座標システムでRobotオブジェクトを構築します。- throws:
- AWTException- プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる
- SecurityException-- createRobotアクセス権が許可されない場合
- 関連項目:
 
- 
Robotpublic Robot(GraphicsDevice screen) throws AWTException 指定されたスクリーン・デバイスにRobotを作成します。 mouseMove、getPixelColor、createScreenCaptureなどのRobotメソッド呼び出しに渡される座標は、指定されたスクリーンと同じ座標系にあると解釈されます。 プラットフォーム構成によっては、複数スクリーンで次のことが行えます。- 同じ座標系を共有し、仮想スクリーンを結合する
- 異なる座標系を使用し、個々のスクリーンのように動作する
 スクリーン・デバイスで座標系に影響がでるように再構成されている場合、既存のRobotオブジェクトの動作は保証されません。 - パラメータ:
- screen- Robotが動作する座標系を示す、スクリーンGraphicsDevice。
- throws:
- AWTException- プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる。
- IllegalArgumentException-- screenがスクリーンGraphicsDeviceではない場合。
- SecurityException-- createRobotアクセス権が許可されない場合
- 関連項目:
 
 
- 
- 
メソッドの詳細- 
mouseMovepublic void mouseMove(int x, int y) 指定したスクリーン座標にマウス・ポインタを移動します。一部のプラットフォームではマウス・ポインタが視覚的に移動しない場合がありますが、後続のmousePressおよびmouseReleaseは正しいロケーションに配信できます - パラメータ:
- 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で
- throws:
- IllegalArgumentException-- buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- disabledになっている場合
- IllegalArgumentException-- buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- enabledになっている場合
- 関連項目:
 
- 
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で
- throws:
- IllegalArgumentException-- buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- disabledになっている場合
- IllegalArgumentException-- buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによって- enabledになっている場合
- 関連項目:
 
- 
mouseWheelpublic void mouseWheel(int wheelAmt) ホイール・マウスのホイール・スクロールを回転させます。- パラメータ:
- wheelAmt- マウス・ホイールを移動する「ノッチ」の数。負の値はユーザーから見て上または離れる方向への移動を示し、正の値はユーザーから見て下または近づく方向への移動を示す。
- 導入されたバージョン:
- 1.4
 
- 
keyPresspublic void keyPress(int keycode) 指定されたキーを押します。 キーを離すにはkeyReleaseメソッドを使用する必要があります。複数の物理的なキーが関連付けられているキー・コード(たとえば、 KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。- パラメータ:
- keycode- 押す対象のキー(- KeyEvent.VK_Aなど)
- throws:
- IllegalArgumentException-- keycodeが有効なキーでない場合
- 関連項目:
 
- 
keyReleasepublic void keyRelease(int keycode) 指定されたキーを離します。複数の物理的なキーが関連付けられているキー・コード(たとえば、 KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。- パラメータ:
- keycode- 離す対象のキー(- KeyEvent.VK_Aなど)
- throws:
- IllegalArgumentException-- keycodeが有効なキーでない場合
- 関連項目:
 
- 
getPixelColorpublic Color getPixelColor(int x, int y) 指定されたスクリーン座標でピクセルの色を返します。デスクトップ環境で画面コンテンツを取得するための権限を付与する必要があり、必要な権限が付与されていない場合、 SecurityExceptionがスローされるか、戻されたColorのコンテンツが未定義になります。- APIのノート:
- AWTイベント・ディスパッチ・スレッドでこのメソッドをコールすることは避けることをお薦めします。これは、特に権限の取得が必要で、ユーザーとの対話が必要な場合に、スクリーン・キャプチャが長い操作になる可能性があるためです。
- パラメータ:
- x- ピクセルのX位置
- y- ピクセルのY位置
- 戻り値:
- ピクセルの色
- throws:
- SecurityException-- readDisplayPixelsアクセス権が付与されていない場合、またはデスクトップ環境によって画面へのアクセスが拒否された場合
 
- 
createScreenCapturepublic BufferedImage createScreenCapture(Rectangle screenRect) スクリーンから読み取るピクセルを含むイメージを作成します。デスクトップ環境で画面コンテンツを取得するための権限を付与する必要があり、必要な権限が付与されていない場合、 SecurityExceptionがスローされるか、または戻されたBufferedImageの内容が定義されていません。- APIのノート:
- AWTイベント・ディスパッチ・スレッドでこのメソッドをコールすることは避けることをお薦めします。これは、特に権限の取得が必要で、ユーザーとの対話が必要な場合に、スクリーン・キャプチャが長い操作になる可能性があるためです。
- パラメータ:
- screenRect- スクリーン座標で取り込むRect
- 戻り値:
- 取り込んだイメージ
- throws:
- IllegalArgumentException-- screenRectの幅および高さが0以下の場合
- SecurityException-- readDisplayPixelsアクセス権が付与されていない場合、またはデスクトップ環境によって画面へのアクセスが拒否された場合
- 関連項目:
 
- 
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
- 戻り値:
- 取り込んだイメージ
- throws:
- IllegalArgumentException-- screenRectの幅および高さが0以下の場合
- SecurityException-- readDisplayPixelsアクセス権が付与されていない場合、またはデスクトップ環境によって画面へのアクセスが拒否された場合
- 導入されたバージョン:
- 9
- 関連項目:
 
- 
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- 遅延時間(ミリ秒単位)
- throws:
- IllegalArgumentException-- msが0から60,000ミリ秒の範囲にない場合
 
- 
delaypublic void delay(int ms) 指定時間スリープします。呼出し側スレッドが待機中に中断されると、割込みステータスが設定された状態ですぐに戻ります。 割り込みステータスがすでに設定されている場合、このメソッドは割り込みステータスが設定された状態でただちに復帰します。 - パラメータ:
- ms- ミリ秒単位のスリープ時間
- throws:
- IllegalArgumentException-- msが- 0から- 60,000ミリ秒の間にない場合
 
- 
waitForIdlepublic void waitForIdle()現在イベント・キューにあるすべてのイベントが処理されるまで待機します。- throws:
- IllegalThreadStateException- AWTイベント・ディスパッチ・スレッドに対して呼び出された場合
 
- 
toStringpublic String toString()このRobotの文字列表現を返します。
 
-