KeyPaper11.java



import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.[                ];
import java.awt.event.[                ];

/** マウスの操作で絵を描くことができるKeyPaper11のクラス定義 */

public class KeyPaper11 extends Applet
       implements MouseListener, MouseMotionListener, [                ] {

   /** 描きたい線の色を記憶する */

         protected [                ] color;

   /** 画面をクリアすべきかどうかを示すフラグ */

         protected [                ] clearFlag = true;

   /** 描きたい線の両端の座標 */

         protected int x1=0, y1=0, x2=0, y2=0;

   /** 初期設定のメソッド */

        public void init() {

               addMouseListener( this );      // 自分自身を登録
               addMouseMotionListener( this );// 自分自身を登録
               [                ]( this );        // 自分自身を登録
               color = Color.red;             // 初期値は赤色
        }

   /**
    * アプレットに「白い画用紙」の領域を描く。このアプレットでは、
    * update() を書き換えたため、最初の表示の時にだけ呼び出される
    */
        public void paint( Graphics g ) {
               g.setColor( Color.white );
               g.fillRect( 0, 0, getSize().width, getSize().height );
               [               ] = false;  // クリア処理が終わった
        }

   /**
    * アプレットにグラフィックを描く。repaint() によって呼び出される
    * このアプレットでは通常とは異なり、以前の図形のクリアや、
    * paint() の呼び出しを行わない
    */
        public void update( Graphics g ) {

               if( [                ] == true ) {  // 画面クリアを実行
                   paint( g );
               }
               else {
                   g.[               ]( color );           // 線の色の設定
                   g.[               ]( x1, y1, x2, y2 );  // 線を描く
                   x1 = x2;
                   y1 = y2;
               }
        }

   /** マウスボタンが押された時に自動的に呼び出される */
        public void [                ]( MouseEvent evt ) {
                x1 = evt.getX();
                y1 = evt.getY();
        }

   /** マウスボタンが押されたまま移動した時に自動的に呼び出される */
        public void [                ]( MouseEvent evt ) {
                x2 = evt.getX();
                y2 = evt.getY();
                repaint();          // update() を呼び出す
        }

   /** マウスボタンがクリックされた時に自動的に呼び出される */
        public void mouseClicked( MouseEvent evt ) {
        }

   /** マウスボタンが放された時に自動的に呼び出される */
        public void mouseReleased( MouseEvent evt ) {
        }

   /** マウスポインタが入った時に自動的に呼び出される */
        public void [                ]( MouseEvent evt ) {

               requestFocus();  // キーボードフォーカスを要求
        }

   /** マウスポインタが出た時に自動的に呼び出される */
        public void mouseExited( MouseEvent evt ) {
        }

   /** マウスボタンが移動した時に自動的に呼び出される */
        public void mouseMoved( MouseEvent evt ) {
        }

   /** キーが入力された時に自動的に呼び出される */

        public void [                ]( [                ] evt ) {

               switch( evt.getKeyChar() ) {

                    case 'r':
                             color = Color.red;
                             break;
                    case 'g':
                             color = Color.green;
                             break;
                    case 'b':
                             color = Color.blue;
                             break;
                    case 'c':
                             clearFlag = true;
                             repaint();    // update()を呼び出す
                             break;
                    default:
               }
        }

   /** キーが押された時に自動的に呼び出される */
        public void keyPressed( KeyEvent evt ) {
        }

   /** キーが放された時に自動的に呼び出される */
        public void keyReleased( KeyEvent evt ) {
        }
}