public class Robot extends Object
クラスを使用して、AWTイベント・キューへのイベント転送またはプラットフォームのネイティブな入力キューで生成されるAWTコンポーネントとは異なる、入力イベントを生成します。たとえばRobot.mouseMoveでは、マウスの移動イベントを生成するだけではなく、マウスのカーソルを実際に動かします。
一部のプラットフォームでは、低レベル入力制御にアクセスするための、特別な特権または拡張機能が必要です。現在のプラットフォーム構成では入力制御を行えない場合、Robotオブジェクトを構築しようとするとAWTExceptionがスローされます。たとえば、XサーバーでXTEST 2.2標準拡張機能がサポートされていない、または使用できない場合、X Windowシステムは例外をスローします。
セルフ・テスト以外の目的で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)
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)
x - ピクセルのX位置y - ピクセルのY位置public BufferedImage createScreenCapture(Rectangle screenRect)
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, 2014, Oracle and/or its affiliates. All rights reserved.