マウスで絵を描くプログラムです。 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;
}
}