JavaTM Platform
Standard Ed. 6

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 Platform
Standard Ed. 6

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

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