java.awt.Robotクラスを用いると、テストの自動化、自動実行のデモ、およびマウスやキーボード制御が必要なアプリケーションのために、ネイティブなシステム入力イベントを生成できます。
このクラスの主な目的は、Javaプラットフォーム実装テストの自動化ですが、mouseMoveメソッドを用いてマウスのカーソルを自由に操れることは、利用者が操作しやすいアプリの作成に役立ちます。
使い方は簡単で、Robotクラスのインスタンスを生成し(このとき、例外(AWTException)の対処が必要です)、mouseMoveメソッドに移動先の座標を指定するだけです。
例えば、ウィンドウを持たないJavaアプリケーションから、マウスカーソルを単純に操るデモプログラムは下記のようになります。
このプログラムを実行すると、マウスカーソルが強制的に画面左上に移動し、ゆっくりと右下に向かって移動します。
利用者の操作を先回りするウィンドウアプリケーション
このmouseMoveメソッドを用いて、起動と同時にユーザーに行ってほしい操作がしやすいように、マウスカーソルを先回りさせるウィンドウアプリケーションを考えてみます。
一例として、メモ帳のような機能を想定して、起動後すぐの操作は「メニューバーの左端のメニューをクリック」することとします。ウィンドウの左上隅からメニューバーの左端までの距離は、フレームとメニューバーのインセットを用いて得ます。この動作のみを確認するプログラムは下記のようになります。
このプログラムを実行すると、マウスカーソルがメニューバーの左端に移動し、ユーザーはそのままクリックするだけでメニューを開けます。
複数のプラットフォームに対応させる場合の注意点
なお、Robotクラスがjava.awtパッケージにあることから分かるように、このクラスのメソッドは、動作するプラットフォーム(OS、ウィンドウマネージャなど)の影響を受けやすい傾向があります。
複数のプラットフォームに対応するアプリケーションの場合は、事前に入念なテストを行い、対応するプラットフォームを明記するなどの対処をお勧めします。
Copyright © ITmedia, Inc. All Rights Reserved.