Java言語 I 実習 第4週

java.awt の JDK1.1による拡張機能

JDK1.1 の新しいイベントモデルに基づいて ユーザーからの入力を処理する練習をします。 コピー&ペーストの機能を提供する java.awt.datatransfer についても紹介します。

準備:

Javaのプログラムの練習用のディレクトリを用意してください その中に移動して以下の作業を行いなさい。


基本課題:1

「マウスの出入りを感知するアプレット」

  1. マウスの出入りを感知するアプレットを作ります。 アプレットのソース・プログラム RevName11.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。

  3. アプレットを呼び出す HTMLファイル RevName11.html を作成しなさい。

  4. Appletviewer に HTMLファイルの URL を指定して表示させてみなさい。

基本課題:2

「キー入力を受け付けるアプレット」

  1. キー入力を受け付けるアプレットのソース・プログラム KeyTest11.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。

  3. アプレットを呼び出す HTMLファイル KeyTest11.html を作成しなさい。

  4. Appletviewer に HTMLファイルの URL を指定して表示させてみなさい。

基本課題:3

「マウスの操作で絵を描くアプレット」

  1. マウスの操作で絵を描くアプレットのソース・プログラム Paper11.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。

  3. アプレットを呼び出す HTMLファイル Paper11.html を作成しなさい。

  4. Appletviewer に HTMLファイルの URL を指定して表示させてみなさい。

基本課題:4

「イベント処理の機能を分離したアプレット(1)」

  1. マウスの操作で絵を描くアプレットのソース・プログラム Paper11.java のイベント処理の機能を独立したクラス Painter として分離します。 ソースファイル WhiteBoard.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。

  3. アプレットを呼び出す HTMLファイル WhiteBoard.html を作成しなさい。

  4. Appletviewer に HTMLファイルの URL を指定して表示させてみなさい。

基本課題:5

「イベント処理の機能を分離したアプレット(2)」

  1. マウスの操作で絵を描くアプレットのソース・プログラム Paper11.java のイベント処理の機能を 2つの独立したクラス Pointer と Drawer に分離します。 これらのクラスは Adapterクラスを継承して実現できます。 ソースファイル WhiteBoard2.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。

  3. アプレットを呼び出す HTMLファイル WhiteBoard2.html を作成しなさい。

  4. Appletviewer に HTMLファイルの URL を指定して表示させてみなさい。

基本課題:6

「Clipboard を使ったコピー&ペースト」

  1. コピー&ペーストの実験プログラムを作ります。 ソースファイル CopyAndPaste.java , Sender.java , Receiver.java , ButtonAndText.java を作成しなさい。

  2. javac コマンドでコンパイルをしなさい。 CopyAndPaste.javaを指定すると、他のソースも自動的に コンパイルされます。

  3. java コマンドで、CopyAndPaste クラスを指定して実行しなさい。 テキスト入力が可能なウィンドウが2つ表示されるはずです。 送り手側のウィンドウに入力し、Copy ボタンを押しなさい。 その後に受け手側のウィンドウで Paste ボタンを押しなさい。 データが転送されるはずです。

応用課題:1

「マウスのボタンのイベントを検出する」

基本課題1:のプログラムを改造し、マウスの出入りではなく マウスボタンを押すと色が反転し、放すと元に戻るようにしなさい。 また、背景色や文字の色を自分の好きな色にしてみなさい。 クラス名は RevName112 とし、適当な HTMLファイルを作成して 確認しなさい。

応用課題:2

「キー入力によるコマンド」

基本課題3:のプログラムを改造し、 キー入力のイベントでコントロールできるように機能を追加してみなさい。 たとえば、"c" のキーを押すと絵がクリアされる。 r,g,b, などのキーを押すと線の色が赤、緑、青などに切り替わるなど。 クラス名は KeyPaper11 とし、適当な HTMLファイルを作成して 確認しなさい。
ヒント:

応用課題:3

「マウスのイベント処理を分離する」

基本課題1:のプログラムを改造し、 マウスのイベント処理の部分を独立したクラスとして分離しなさい。 アプレットのクラス名は RevBoard、 イベント処理のクラスは Changer となさい。 Changer は MouseListener を実装して作成しなさい。 適当な HTMLファイルも作成して確認しなさい。

応用課題:4

「3種類のイベント処理を分離する」

基本課題2:のプログラムを改造し、 マウスの出入りの処理、キーを入力した時の処理、 キーボードフォーカスの検出の処理、 の各部分を独立したクラスとして分離しなさい。
アプレットやイベント処理のクラス名は適当なものを考えなさい。 イベント処理のクラスは MouseAdapter, KeyAdapter, FocusAdapter を継承して作成しなさい。 適当な HTMLファイルも作成して確認しなさい。


実習の目次  今週の講義の内容