最後に、マウスポインタ(マウスカーソル)について見てみましょう。私たちがGUI付きのOSを使っている場合には、マウスポインタは大変よく見かける仕組みであることでしょう。目が行く先、そこにまさにマウスポインタが存在することが多いです。
マウスポインタは歴史的な経緯などにより、「マウスカーソル」などと呼ばれる場合があります。これから紹介するAPIも「java.awt.Cursor」という名称になっています。
まず、Windows XPでの標準のマウスポインタ設定がどのようになっているのかを見ていきましょう。コントロールパネルから「マウス」を選択して「ポインタ」タブを選択すると、下の図17のような画面が開きます。
Windows XPでは、プログラムの状態とマウスポインタの形状とが図17のように関連付けされています。なるほど、私たちがウィンドウを操作していると、マウス形状が変化しますが、その形状はWindows XPでは、「マウスのプロパティ」ダイアログなどで設定できるのですね。
次に、マウスポインタの形状を変更するプログラムを書いて、プログラム上で指定した値がどのように作用するのかを確認してみましょう。ここでは、前述のシンプルSwingアプリケーションをベースとして、ウィンドウ上にマウスポインタが来ると「待ち状態」の形状に変わるようにプログラムを記述します。
Java 2 Platform SE 5.0の「java.awt.Cursor」ドキュメントを基に、指定可能なマウスポインタの定数値とWindows XPのデフォルト時のマウスポインタ形状の対応を下の表で示します。
表 マウスポインタの定数値とWindows XPのデフォルト時の形状 | |||||||||||||||||||||||||||||||||||||||||||||
|
これら定数値を用いると、システムとして組み込まれているマウスポインタの形状をすぐに利用できます。ウィンドウ上でマウスポインタが変更される様子を確認しましょう。下記のソースコードを実行してください。
SimpleCursorSample.java | |
|
Swingアプリケーション上をマウスポインタが通過すると、マウスポインタの形状がプログラムで指定したとおりの形状になることを確認してください。
行(5)に注目してください。JPanelのsetCursorにマウスポインタのオブジェクトを渡すことにより、マウスポインタの形状を変更できます。
ここでは、Cursor.getPredefinedCursorメソッドを用いて、すでに定義済みのマウスポインタを取り出しています。このメソッドに与える定数を変更することにより、「待ち状態」以外のマウスポインタ形状へと変化させることができます。
この例では、マウスポインタを「待ち状態」の形状に変更していますが、これは形状が変更されているにすぎないことに注意する必要があります。一般的なアプリケーションの多くでは、マウスポインタが「待ち状態」の形状になっているときには、「マウスクリック」などのイベントの多くが無効化されているかと思います。しかし、この例では、マウスポインタの形状が単に「待ち状態」になっているにすぎず、イベントは無効化されていません。ご注意を。
今回はプログラマーに身近なデスクトップの常識と題して、「色」「フォント」「カーソル」を紹介しました。次回の記事では、[java.lang.Math]クラスなどを使って、数に関する常識を取り上げる予定です。それでは、次回をお楽しみに。
参考文献
▼『デジタル色彩マニュアル』 クレオ発行、日本色彩研究所
blanco Framework(コミッタ)
伊賀 敏樹(いが としき)
ハンドル:いがぴょん
1968年生まれ。現在、NTTデータ ビジネスブレインズ 第一SI事業部 ソリューショングループ所属。システム開発の技術支援などに従事する。仕事におけるJava言語とのかかわりは1998年から。 現在 blanco Frameworkというオープンソースによるソースコード自動生成タイプの開発フレームワーク提供に取り組んでいる。 趣味はヴァイオリン演奏。アマチュアオーケストラで演奏することもある。
ホームページ
いがぴょんの日記ウェブページv2(1996年から続けているWeb日記)
主な著書
「やさしく学ぶ基礎からのJDBC」
「Javaプログラミング[アプリケーション編]ステップアップラーニング」
Copyright © ITmedia, Inc. All Rights Reserved.