JavaTM 2 Platform
Standard Ed. 5.0

java.awt
クラス Robot

java.lang.Object
  上位を拡張 java.awt.Robot

public class Robot
extends Object

このクラスを用いると、テストの自動化、自動実行のデモ、およびマウスやキーボード制御が必要なアプリケーションのために、ネイティブなシステム入力イベントを生成することができます。Robot の主な目的は、Java プラットフォーム実装テストを自動化することです。

クラスを使用して、AWT イベントキューへのイベント転送またはプラットフォームのネイティブな入力キューで生成される AWT コンポーネントとは異なる、入力イベントを生成します。たとえば Robot.mouseMove では、マウスの移動イベントを生成するだけではなく、マウスのカーソルを実際に動かします。

一部のプラットフォームでは、低レベル入力制御にアクセスするための、特別な特権または拡張機能が必要です。現在のプラットフォーム構成では入力制御を行えない場合、Robot オブジェクトを構築しようとすると AWTException がスローされます。たとえば、X サーバで XTEST 2.2 標準拡張機能がサポートされていない、または使用できない場合、X Window システムは例外をスローします。

セルフテスト以外の目的で Robot を使用するアプリケーションでは、これらの例外条件を正常に処理する必要があります。

導入されたバージョン:
1.3

コンストラクタの概要
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()
          現在イベントキューにあるすべてのイベントが処理されるまで待機します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

Robot

public Robot()
      throws AWTException
プライマリスクリーンの座標システムで Robot オブジェクトを構築します。

例外:
AWTException - プラットフォーム構成が低レベル入力制御を許可しない場合。 GraphicsEnvironment.isHeadless() が true を返す場合、この例外は常にスローされる
SecurityException - createRobot アクセス権が許可されない場合
関連項目:
GraphicsEnvironment.isHeadless(), SecurityManager.checkPermission(java.security.Permission), AWTPermission

Robot

public Robot(GraphicsDevice screen)
      throws AWTException
指定されたスクリーンデバイスに Robot を作成します。mouseMove や createScreenCapture などの Robot メソッド呼び出しに渡された座標は、指定したスクリーンと同じ座標系として解釈されます。プラットフォーム構成によっては、複数スクリーンで次のことが行えます。 このコンストラクタは後者の場合です。

スクリーンデバイスで座標系に影響がでるように再構成されている場合、既存の Robot オブジェクトの動作は保証されません。

パラメータ:
screen - Robot が動作する座標系を示す、スクリーン GraphicsDevice
例外:
AWTException - プラットフォーム構成が低レベル入力制御を許可しない場合。 GraphicsEnvironment.isHeadless() が true を返す場合、この例外は常にスローされる
IllegalArgumentException - screen がスクリーン GraphicsDevice ではない場合
SecurityException - createRobot アクセス権が許可されない場合
関連項目:
GraphicsEnvironment.isHeadless(), GraphicsDevice, SecurityManager.checkPermission(java.security.Permission), AWTPermission
メソッドの詳細

mouseMove

public void mouseMove(int x,
                      int y)
指定したスクリーン座標にマウスポインタを移動します。

パラメータ:
x - X 位置
y - Y 位置

mousePress

public void mousePress(int buttons)
1 つまたは複数のマウスボタンを押します。マウスボタンを離すには mouseRelease メソッドを使用する必要があります。

パラメータ:
buttons - Button マスク。次のフラグの 1 つまたは複数の組み合わせ
  • InputEvent.BUTTON1_MASK
  • InputEvent.BUTTON2_MASK
  • InputEvent.BUTTON3_MASK
例外:
IllegalArgumentException - ボタンマスクが有効な組み合わせではない場合
関連項目:
mouseRelease(int)

mouseRelease

public void mouseRelease(int buttons)
1 つまたは複数のマウスボタンを離します。

パラメータ:
buttons - Button マスク。次のフラグの 1 つまたは複数の組み合わせ。
  • InputEvent.BUTTON1_MASK
  • InputEvent.BUTTON2_MASK
  • InputEvent.BUTTON3_MASK
例外:
IllegalArgumentException - ボタンマスクが有効な組み合わせではない場合
関連項目:
mousePress(int)

mouseWheel

public void mouseWheel(int wheelAmt)
ホイールマウスのホイールスクロールを回転させます。

パラメータ:
wheelAmt - マウスホイールを移動する「ノッチ」の数。負の値はユーザから見て上または離れる方向への移動を示し、正の値はユーザから見て下または近づく方向への移動を示す
導入されたバージョン:
1.4

keyPress

public void keyPress(int keycode)
指定されたキーを押します。キーを離すには keyRelease メソッドを使用する必要があります。

2 つ以上の物理キーが関連付けられているキーコード (たとえば、KeyEvent.VK_SHIFT は左右両方のシフトキーを表す) は、左のキーにマップされます。

パラメータ:
keycode - 押す対象のキー (KeyEvent.VK_A など)
例外:
IllegalArgumentException - keycode が有効なキーではない場合
関連項目:
keyRelease(int), KeyEvent

keyRelease

public void keyRelease(int keycode)
指定されたキーを離します。

2 つ以上の物理キーが関連付けられているキーコード (たとえば、KeyEvent.VK_SHIFT は左右両方のシフトキーを表す) は、左のキーにマップされます。

パラメータ:
keycode - 離す対象のキー (KeyEvent.VK_A など)
例外:
IllegalArgumentException - keycode が有効なキーではない場合
関連項目:
keyPress(int), KeyEvent

getPixelColor

public Color getPixelColor(int x,
                           int y)
指定されたスクリーン座標でピクセルの色を返します。

パラメータ:
x - ピクセルの X 位置
y - ピクセルの Y 位置
戻り値:
ピクセルの色

createScreenCapture

public BufferedImage createScreenCapture(Rectangle screenRect)
スクリーンから読み取るピクセルイメージを作成します。このイメージにはマウスカーソルが含まれません。

パラメータ:
screenRect - スクリーン座標で取り込む Rect
戻り値:
取り込んだイメージ
例外:
IllegalArgumentException - screenRect の幅および高さが 0 よりも小さい場合
SecurityException - readDisplayPixels アクセス権が許可されない場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), AWTPermission

isAutoWaitForIdle

public boolean isAutoWaitForIdle()
イベント生成後、この Robot が waitForIdle を自動で起動するかどうかを返します。

戻り値:
waitForIdle が自動で呼び出されるかどうか

setAutoWaitForIdle

public void setAutoWaitForIdle(boolean isOn)
イベント生成後、この Robot が waitForIdle を自動で起動するかどうかを設定します。

パラメータ:
isOn - waitForIdle が自動で起動されるかどうか

getAutoDelay

public int getAutoDelay()
イベント生成後、この Robot がスリープする時間をミリ秒で返します。


setAutoDelay

public void setAutoDelay(int ms)
イベント生成後、この Robot がスリープする時間をミリ秒で設定します。

例外:
IllegalArgumentException - ms が 0 から 60,000 ミリ秒の範囲にない場合

delay

public void delay(int ms)
指定された間スリープします。発生する任意の InterruptedException をキャッチするために、代わりに Thread.sleep() が使用されます。

パラメータ:
ms - ミリ秒単位のスリープ時間
例外:
IllegalArgumentException - ms が 0 から 60,000 ミリ秒の範囲にない場合
関連項目:
Thread.sleep(long)

waitForIdle

public void waitForIdle()
現在イベントキューにあるすべてのイベントが処理されるまで待機します。

例外:
IllegalThreadStateException - 着信側の AWT イベントがスレッドをディスパッチしている場合

toString

public String toString()
この Robot の文字列表現を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
文字列表現

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。