確認○×問題
イベント | メッセージ |
---|---|
マウスをクリックした | クリックされました |
マウスがアプレット上に入った | アプレット上に入りました |
マウスがアプレットから出た | アプレットから出ました |
マウスのボタンを押した | ボタンが押されました |
マウスのボタンをはなした | ボタンが離されました |
完成例:
■難易度★★☆
課題2 星の画像がマウスカーソルを追従するアプレットを作成しなさい。星の図はここからダウンロードしてください。
ヒント:
MouseListenerの変わりにMouseMotionListenerを用いなさい(教書の503ページのコーヒーブレイクの欄を参照)。
完成例:
■難易度★★★
課題3 色の異なる複数の星の画像がマウスカーソルを追従するアプレットを作成しなさい。星の図は次から星(黄)・星(赤)・星(緑)からダウンロードしてください。
ヒント:
各星の座標を保持するために配列を用いなさい。マウスが動くたびに配列の値を1つ後方へシフトし、配列の先頭に現在のマウスカーソルの値をコピーすればよい。
完成例:
注 意:
デモでは星のちらつきが気になりますが、これは画面の描画にシングルバッファを用いているためです。シングルバッファは画面の表示に1枚の画用紙を使う方式です。画用紙のクリアと描画を交互に行うため、繰返し高速に描画が行われる場合にチラつきが発生します。画用紙を2枚用いる方式をダブルバッファといいます。1枚は表示用でもう1枚は描画用と使い分けます。描画用の画用紙にクリアと描画を行います。描画が終わると2枚を入れ替えて描画の終了した画用紙を表示します。これを繰り返します。ダブルバッファ方式ではスムーズな描画効果を得ることができます。以下のデモで違いを比べてみましょう。興味ある方は是非調べてみましょう!
完成例(ダブルバッファ):
■難易度★★☆
課題4 マウスをクリックした場所にクロスヘア(照準マーク)を表示するアプレットを作成しなさい。
完成例:
■難易度★★★
課題5 2つのボタンを配置し、ボタンが押されたらそのボタンのラベルを●に、他方のラベルを○にするアプレットを作成しなさい。
ヒント:
ButtonクラスのsetActionCommand()メソッド、ActionEventクラスのgetActionCommand()メソッドの機能をWebで調べて、うまく活用してみよう。
完成例:
■難易度★★★
課題6 血液型が選択できるチョイスを配置し、選択されたらその血液型を表示するアプレットを作成しなさい。
ヒント:
ChoiceクラスのメンバをWebで調べて、うまく活用してみよう。
完成例: