Kadai1209プログラムの説明
  // 点のクラスを定義する.
class Point{
  // X座標,Y座標を int で保持する.
  public int x,y;
  // Pointのコンストラクタ
  public Point(int x1,int x2){
   x=x1;
   y=x2;
  }
}

Appletを使うため、Vectorクラスを使うため、
AWTを使うため、イベント駆動関係のクラスを用いるため、
まずは様々な機能をimportします。

その後、Pointクラスを定義します。
これはマウスがクリックされた場所を表示するために使います。

 // インタフェースの実装では 「implements インタフェース名」と書く
 // 複数書く場合は,カンマで区切る
public class Kadai1209 extends Applet implements ActionListener,ItemListener{
   // ベクトルの作成
  Vector vector = new Vector();
   // マウスをクリックした回数を示す int型の変数draggingの宣言
  int click;
   // 背景の色を決める int型の変数backの宣言
  int back;
   // イメージを表す Image クラスの変数 image の宣言
  Image image1,image2;
   // ボタンを作る
  Button button1,button2;
   // チェックボックスを作る
  Checkbox check1;

次にKadai1209クラスを作成します。
まず初めに、様々な変数を宣言します

  public void init(){
    setLayout(new FlowLayout());
     // 「Change」というラベルを持つボタンを作り、window中に配置
    add(button2=new Button("Change"));
     // 「Check1」というラベルを持つチェックボックスを作り,window中に配置
    add(check1=new Checkbox("Check1"));
     // クリックされていない
    click=0;
     // 背景色の初期化
    back = 0;
     // イメージを得る.
    image1=Toolkit.getDefaultToolkit().getImage("test.png");
    image2=Toolkit.getDefaultToolkit().getImage("test2.png");
      // GUI部品と,Event Listenerを関連づける
    button2.addActionListener(this);
    check1.addItemListener(this);
  }

Appletなのでinitメソッドを定義します。

   // Frameの書き直しをする際に呼ばれる
  public void paint(Graphics g){
     // デバッグ用の表示
    System.out.println(click);
     // マウスをクリックした回数で分類して
    if(click % 3 == 1){
       // 青い色で
      if (back % 2 == 0){
        g.setColor(Color.blue);
      }
      if (back % 2 == 1){
	  g.setColor(Color.red);
      }
      g.fillRect(0,0,400,400);
     // イメージ image2 を (100,100)を左上にして表示する.
      g.drawImage(image2,100,100,this);
    }
    else if(click % 3 == 2){
      if (back % 2 == 0){
         // 白い色で
        g.setColor(Color.white);
      }
      else if(back % 2 == 1){
         // 青い色で
        g.setColor(Color.blue);
      }
      g.fillRect(0,0,400,400);
       // イメージ image を (100,100)を左上にして表示する.
      g.drawImage(image1,100,100,this);
    }
    else if(click % 3 == 0){
       // 雪だるま
      if (back % 2 == 0){
         //色を黒に変更
        g.setColor(Color.black);
      }
      else if (back % 2 == 1){
         //色を青に変更
        g.setColor(Color.blue);
      }
      //全部黒で塗りつぶす
      g.fillRect(0,0,400,400);
      //色を灰色に変更
      g.setColor(Color.gray);
      //下半分を塗りつぶす
      g.fillRect(0,150,400,400);
      //色を白に変更
      g.setColor(Color.white);
      //雪だるまの頭を書く
      g.fillOval(265,140,70,70);
      //雪だるまの胴体を書く
      g.fillOval(250,200,100,100);
      //色を赤に変更
      g.setColor(Color.red);
      //雪だるまの口を書く
      g.fillArc(240,160,50,50,350,20);
      //色を緑に変更
      g.setColor(Color.green);
      //雪だるまの左側の目を書く
      g.fillOval(285,160,10,10);
      //雪だるまの右側の目を書く
      g.fillOval(305,170,10,10);
      //色を黄色に変更
      g.setColor(Color.yellow);
      //月を書く
      g.fillOval(100,100,30,30);
      if (back % 2 == 0){
         //色を黒に変更
        g.setColor(Color.black);
      }
      else if (back % 2 == 1){
         //色を青に変更
        g.setColor(Color.blue);
      }
      //月を三日月にする
      g.fillOval(112,105,20,20);
    }
  }


3種類のペイントメソッドを定義します。
click % 3 ==  1,2 の場合は、
下の2種類の絵が表示されます。
背景は、backの値によって色が変わります。



  public void actionPerformed(ActionEvent e){
     // イベントのターゲットは GUI 部品のオブジェクトだが,
     // これが Button クラスのインスタンスかどうかのチェック
    System.out.println(e);
    Object source=e.getSource();
    if(source instanceof Button){
      String label=e.getActionCommand();
        // 押されたボタンのラベルをチェック
      if(label.equals("Change")){
	click += 1;
      }
      // 明示的に,書き直しをする
    repaint();
    }
  }
  public void itemStateChanged(ItemEvent e){
     // イベントのターゲットは GUI 部品のオブジェクトだが,
     // これが Button クラスのインスタンスかどうかのチェック
    System.out.println(e);
    Object source=e.getSource();
    // 押されたのがチェックボックスだった場合は、背景色を変化させる
    if(source instanceof Checkbox){
      back += 1;
      repaint();
    }
  }  
}
最後に、イベントが発生したときのメソッドを定義します。
というまあ単純なプログラムです。