雪だるま


yukidaruma

上の絵と似ていない月と雪ダルマが描かれた絵を描くプログラム Yukidaruma.javaを作りなさい.

ヒント

一からプログラムを書くのが大変な人のために,典型的なプログラムのパター ンを後ろにつける.緑色の行を書き換えることでプログラムを完成させても良い.なお,このコードをそのまま提出しても,月と雪ダルマが書かれていないので,課題の条件は満たされない.

// 名前:
// 学生証番号:
// 説明  


  // AWTを使うので java.awt.*を import する
import java.awt.*;
  // イベント駆動関係のクラスを用いるため
import java.awt.event.*;

  // 独立したウィンドウを開くので,Frameクラスのサブクラスにする
class Yukidaruma extends Frame implements KeyListener,MouseListener{
    // 表示する際に必要なインスタンス変数を宣言しておく
    int mx=100,my=100;

    public Yukidaruma(String title){
	super(title);
	// GUI部品と,Event Listenerを関連づける
	addKeyListener(this);
	addMouseListener(this);
    }
    // KeyListenerを実装するためのメソッド
    public void keyPressed(KeyEvent e){
	int key=e.getKeyChar();
	System.out.println("keyPressed("+e+","+key+")");
	if(key=='q') System.exit(0);
    }
    // 要らないイベントに対応するメソッドも中身は空で書いておく必要がある.
    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
    // MouseListenerを実装するためのメソッド
    public void mousePressed(MouseEvent e){
	// 押された時のマウスカーソルの位置を得る
	mx=e.getX();
	my=e.getY();
	// 再表示をおこなう
	repaint();
    }
    // 要らないイベントに対応するメソッドも中身は空で書いておく必要がある.
    public void mouseReleased(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseClicked(MouseEvent e){}

    public static void main(String[] args){
	Yukidaruma frame=new Yukidaruma("Yukidaruma");
	frame.setSize(400,400);
	frame.setVisible(true);    
    }
    public void paint(Graphics g){

	// インスタンス変数にしたがって描画するコードを書く
	g.setColor(Color.white);
	g.fillRect(0,0,400,400);
	g.setColor(Color.gray);
	g.fillOval(mx,my,100,100);

    }
}