public class Robot extends Object
 クラスを使用して、AWTイベント・キューへのイベント転送またはプラットフォームのネイティブな入力キューで生成されるAWTコンポーネントとは異なる、入力イベントを生成します。 たとえばRobot.mouseMoveでは、マウスの移動イベントを生成するだけではなく、マウスのカーソルを実際に動かします。 
 
 一部のプラットフォームでは、低レベル入力制御にアクセスするための、特別な特権または拡張機能が必要です。 現在のプラットフォーム構成では入力制御を行えない場合、Robotオブジェクトを構築しようとするとAWTExceptionがスローされます。 たとえば、XサーバーでXTEST 2.2標準拡張機能がサポートされていない、または使用できない場合、X Windowシステムは例外をスローします。 
 
セルフ・テスト以外の目的でRobotを使用するアプリケーションでは、これらの例外条件を正常に処理する必要があります。
プラットフォームおよびデスクトップ環境では、Robotクラスのすべての機能を実装するために必要なアクセスに制限または制限が課される場合があります。 たとえば:
| コンストラクタ | 説明 | 
|---|---|
| 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) | 1つまたは複数のマウス・ボタンを押します。 | 
| void | mouseRelease(int buttons) | 1つまたは複数のマウス・ボタンを離します。 | 
| void | mouseWheel(int wheelAmt) | ホイール・マウスのホイール・スクロールを回転させます。 | 
| void | setAutoDelay(int ms) | イベント生成後、このRobotがスリープする時間をミリ秒で設定します。 | 
| void | setAutoWaitForIdle(boolean isOn) | イベントを生成したあと、このRobotが waitForIdleを自動的に呼び出すかどうかを設定します。 | 
| String | toString() | このRobotの文字列表現を返します。 | 
| void | waitForIdle() | 現在イベント・キューにあるすべてのイベントが処理されるまで待機します。 | 
public Robot()
      throws AWTException
AWTException - プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる SecurityException - createRobotアクセス権が許可されない場合GraphicsEnvironment.isHeadless(), SecurityManager.checkPermission(java.security.Permission), AWTPermissionpublic Robot(GraphicsDevice screen) throws AWTException
スクリーン・デバイスで座標系に影響がでるように再構成されている場合、既存のRobotオブジェクトの動作は保証されません。
screen - Robotが動作する座標系を示す、スクリーンGraphicsDevice。AWTException - プラットフォーム構成で低レベルの入力制御が許可されない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる IllegalArgumentException - screenがスクリーンGraphicsDeviceではない場合。SecurityException - createRobotアクセス権が許可されない場合GraphicsEnvironment.isHeadless(), GraphicsDevice, SecurityManager.checkPermission(java.security.Permission), AWTPermissionpublic void mouseMove(int x,
                      int y)
一部のプラットフォームではマウス・ポインタが視覚的に移動しない場合がありますが、後続のmousePressおよびmouseReleaseは正しいロケーションに配信できます
x - X位置y - Y位置public void mousePress(int buttons)
mouseRelease(int)メソッドを使用する必要があります。 buttons - Buttonマスク。1つ以上のマウス・ボタン・マスクの組み合わせ。
 
 buttonsパラメータとして有効な値の組み合わせのみの使用が許可されます。 有効な組み合わせは、InputEvent.getMaskForButton(button)メソッドによって返されたInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASK、および値で構成されます。 有効な組み合わせは、次のようにToolkit.areExtraMouseButtonsEnabled()値によっても異なります。 
 
disabledにされている場合は、標準ボタン・マスクInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASKのみを使用できます。
 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のどちらかの値を使用するべきですが、これらの両方のモデルを混在させてはいけません。 IllegalArgumentException - buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによってdisabledになっている場合IllegalArgumentException - buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによってenabledになっている場合mouseRelease(int), InputEvent.getMaskForButton(int), Toolkit.areExtraMouseButtonsEnabled(), MouseInfo.getNumberOfButtons(), MouseEventpublic void mouseRelease(int buttons)
buttons - Buttonマスク。1つ以上のマウス・ボタン・マスクの組み合わせ。
 
 buttonsパラメータとして有効な値の組み合わせのみの使用が許可されます。 有効な組み合わせは、InputEvent.getMaskForButton(button)メソッドによって返されたInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASK、および値で構成されます。 有効な組み合わせは、次のようにToolkit.areExtraMouseButtonsEnabled()値によっても異なります。 
 
disabledにされている場合は、標準ボタン・マスクInputEvent.BUTTON1_DOWN_MASK、InputEvent.BUTTON2_DOWN_MASK、InputEvent.BUTTON3_DOWN_MASKのみを使用できます。
 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のどちらかの値を使用するべきですが、これらの両方のモデルを混在させてはいけません。 IllegalArgumentException - buttonsマスクに追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによってdisabledになっている場合IllegalArgumentException - buttonsマスクに、マウス上に存在しない追加のマウス・ボタンのマスクが含まれ、拡張されたマウス・ボタンのサポートがJavaによってenabledになっている場合mousePress(int), InputEvent.getMaskForButton(int), Toolkit.areExtraMouseButtonsEnabled(), MouseInfo.getNumberOfButtons(), MouseEventpublic void mouseWheel(int wheelAmt)
wheelAmt - マウス・ホイールを移動する「ノッチ」の数。負の値はユーザーから見て上または離れる方向への移動を示し、正の値はユーザーから見て下または近づく方向への移動を示す。public void keyPress(int keycode)
keyReleaseメソッドを使用する必要があります。 
 
 複数の物理的なキーが関連付けられているキー・コード(たとえば、KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。
keycode - 押す対象のキー(KeyEvent.VK_Aなど)IllegalArgumentException - keycodeが有効なキーでない場合keyRelease(int), KeyEventpublic void keyRelease(int keycode)
 複数の物理的なキーが関連付けられているキー・コード(たとえば、KeyEvent.VK_SHIFTは左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。
keycode - 離す対象のキー(KeyEvent.VK_Aなど)IllegalArgumentException - keycodeが有効なキーでない場合keyPress(int), KeyEventpublic Color getPixelColor(int x, int y)
 デスクトップ環境で画面コンテンツを取得するための権限を付与する必要があり、必要な権限が付与されていない場合、SecurityExceptionがスローされるか、戻されたColorのコンテンツが未定義になります。
 
x - ピクセルのX位置y - ピクセルのY位置SecurityException - readDisplayPixelsアクセス権が付与されていない場合、またはデスクトップ環境によって画面へのアクセスが拒否された場合public BufferedImage createScreenCapture(Rectangle screenRect)
 デスクトップ環境で画面コンテンツを取得するための権限を付与する必要があり、必要な権限が付与されていない場合、SecurityExceptionがスローされるか、または戻されたBufferedImageの内容が定義されていません。
 
screenRect - スクリーン座標で取り込むRectIllegalArgumentException - screenRectの幅および高さが0以下の場合SecurityException - readDisplayPixelsアクセス権が付与されていない場合、またはデスクトップ環境によって画面へのアクセスが拒否された場合SecurityManager.checkPermission(java.security.Permission), AWTPermissionpublic boolean isAutoWaitForIdle()
waitForIdleを自動的に呼び出すかどうかを返します。waitForIdleが自動で呼び出されるかどうかpublic void setAutoWaitForIdle(boolean isOn)
waitForIdleを自動的に呼び出すかどうかを設定します。isOn - waitForIdleが自動で起動されるかどうかpublic int getAutoDelay()
public void setAutoDelay(int ms)
IllegalArgumentException - msが0から60,000ミリ秒の範囲にない場合public void delay(int ms)
InterruptedExceptionをキャッチするために、代わりにThread.sleep()が使用されます。 ms - ミリ秒単位のスリープ時間IllegalArgumentException - msが0から60,000ミリ秒の範囲にない場合Thread.sleep(long)public void waitForIdle()
IllegalThreadStateException - AWTイベント・ディスパッチ・スレッドに対して呼び出された場合 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。