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)
, AWTPermission
public 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)
, AWTPermission
public 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()
, MouseEvent
public 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()
, MouseEvent
public void mouseWheel(int wheelAmt)
wheelAmt
- マウス・ホイールを移動する「ノッチ」の数。負の値はユーザーから見て上または離れる方向への移動を示し、正の値はユーザーから見て下または近づく方向への移動を示す。public void keyPress(int keycode)
keyRelease
メソッドを使用する必要があります。
複数の物理的なキーが関連付けられているキー・コード(たとえば、KeyEvent.VK_SHIFT
は左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。
keycode
- 押す対象のキー(KeyEvent.VK_A
など)IllegalArgumentException
- keycode
が有効なキーでない場合keyRelease(int)
, KeyEvent
public void keyRelease(int keycode)
複数の物理的なキーが関連付けられているキー・コード(たとえば、KeyEvent.VK_SHIFT
は左または右のShiftキーを示す可能性がある)は、左のキーにマップされます。
keycode
- 離す対象のキー(KeyEvent.VK_A
など)IllegalArgumentException
- keycode
が有効なキーでない場合keyPress(int)
, KeyEvent
public 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)
, AWTPermission
public 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.