復習テスト(10/28)

マウスで絵を描くプログラムです。 Shiftキーおよび Ctrlキーを用いて描く線の色を変えることができます。 空欄を埋めてプログラムを完成させなさい。



import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.[            ];

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

public class Paper2 extends Applet {

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

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

    /** 描きたい線の色 */

       protected Color color=Color.black;

    /** アプレットにグラフィックを描く。このアプレットでは、
     update() を書き換えたため、最初の表示の時にだけ呼び出される。*/

       public void [            ]( Graphics g ) {

             g.setColor( Color.white );
             g.fillRect( 0, 0, size().width, size().height );
       }

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

       public void [            ]( Graphics g ) {

             g.setColor( color );           // 色を変更
             g.drawLine( x1, y1, x2, y2 );  // 線を描く
             x1 = x2;                       // 終点を新しい始点にする
             y1 = y2;
       }

   /** マウスボタンが押された時に自動的に呼び出される。*/

       public boolean [              ]( Event evt,  int x, int y ) {

             x1 = x;            // 始点の座標の設定
             y1 = y;
             return true;
       }

   /** マウスボタンが押されたまま移動した時に自動的に呼び出される。*/

       public boolean [              ]( Event evt,  int x, int y ) {

             if( evt.controlDown() )     // CTRLキーを押しながら(赤色)
                 color = Color.red;
             else if( evt.shiftDown() )  // Shiftキーを押しながら(青色)
                 color = Color.blue;
             else                        // 通常のドラッグ(黒色)
                 color = Color.black;

             x2 = x;         // 終点の座標の設定
             y2 = y;
             [             ]();   // update() を呼び出す
             return true;
       }
}