モジュール java.desktop
パッケージ 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を使用するアプリケーションでは、これらの例外条件を正常に処理する必要があります。

プラットフォームおよびデスクトップ環境では、Robotクラス内のすべての機能を実装するために必要なアクセスに対して制限または制限が課される場合があります。 たとえば:

  • 実行中のアプリケーションによって所有されていないデスクトップまたはデスクトップ上のウィンドウのコンテンツへのアクセスを防止します。
  • ウィンドウ装飾を非所有コンテンツとして扱います。
  • ウィンドウを操作する特定のリクエストを無視または制限します。
  • ロボットがキーボードやマウスなどに関連する (synthesized)イベントを生成する特定のリクエストを無視または制限します。
  • ウィンドウ・コンテンツへのアクセス、アプリケーション所有のコンテンツ、またはイベントの合成を限定的に行うには、特定のアクセス権またはグローバル・アクセス権が必要です。
Robot API仕様では、これらに対する許可が完全な操作に付与されている必要があります。 付与されていない場合、ここで説明するようにAPIは機能低下します。 関連する特定のAPIメソッドでは、より具体的な制限および要件を文書化できます。 デスクトップ環境のポリシーに応じて、前述の承認は次のようになります:
  • 毎回必須
  • または、アプリケーションの存続期間中、
  • または、複数のユーザー・デスクトップ・セッションにわたって永続的
  • ファイングレイン権限
  • 特定のバイナリ・アプリケーション、またはバイナリ・アプリケーションのクラスに関連付けられます。
このような承認を対話形式で付与する必要がある場合、承認されるまでアプリケーションの通常の操作が妨げられることがあります。また、承認が拒否されたり、不可能であったり、永続的にすることができない場合は、このクラスの機能が低下し、アプリケーションに依存するアプリケーションの操作の一部が変わります。

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