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, 2013, Oracle and/or its affiliates. All rights reserved.