ボタン操作で石の数を設定

ウインドウにボタンを張り付けて、石の数を増減します。

下のリンクをクリックすると、このページで作成したアプレットが実行されます。
石を5個並べて、ボタン操作でアップ・ダウン

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして updown.java の名前で保存して下さい。
    //★ ボタン操作でアップ・ダウン    前田 稔
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class updown extends Applet
    {   static  Button  btn1, btn2;
        static  Image   img;
        static  int     num= 5;
        static  inEventListener listener;
    
        // Initialize
        public void init()
        {   listener = new inEventListener();
            btn1 = new Button(" Up ");
            btn2 = new Button("Down");
            setLayout(new FlowLayout());
            btn1.addActionListener(listener);
            btn2.addActionListener(listener);
            add(btn1);
            add(btn2);
            img = getImage(getDocumentBase(),"jewel.gif");
        }
    
        // 画像の描画
        public void paint(Graphics g)
        {   int   i,x;
            super.paint(g);
            if (img!=null)
            {   for(i=0; i<num; i++)
                {   x= i*60;
                    g.drawImage(img,x,40,this);
                }
            }
        }
    
        // 内部イベントリスナー
        class inEventListener implements ActionListener
        {   public void actionPerformed(ActionEvent e)
            {   Object source = e.getSource();
                if (source == btn1)
                    if (num<10)
                    {   num++;
                        repaint();
                    }
                if (source == btn2)
                   if (num>0)
                   {    num--;
                        repaint();
                   }
            }
        }
    }
    
  2. jewel.gif(48*48 の宝石の画像)をプログラムと同じフォルダーに格納して下さい。
    テストするときは、サイズが合えば何でもかまいません。
    "Up" ボタンをクリックすると石が増え、"Down" ボタンをクリックすると石が減ります。
  3. ホームページを表示する HTML ファイルを作成します。
    <html>
      <body>
        <h3>石を5個並べて、ボタン操作でアップ・ダウン</h3>
        <applet code="updown.class" width="600" height="120">
        </applet>
      </body>
    </html>
    

プログラムの説明

  1. このプログラムは クリックで石を取り除く のボタン版です。
    基本的な説明はこちらを参照して下さい。
  2. Button で二個のボタンを定義します。
    Image img; は画像データ(イメージ)の領域で、num が描画する個数です。
    ボタンのクリックを検出するので、inEventListener を定義します。
        public class updown extends Applet
        {   static  Button  btn1, btn2;
            static  Image   img;
            static  int     num= 5;
            static  inEventListener listener;
        
  3. init() メソッドでアプレットの初期化を行います。
    Listener と Button をインスタンス化します。
    ボタンの配置は setLayout(new FlowLayout()); でシステムに任せます。
    ボタンに Listener を設定してウインドウに貼り付けます。
        public void init()
        {   listener = new inEventListener();
            btn1 = new Button(" Up ");
            btn2 = new Button("Down");
            setLayout(new FlowLayout());
            btn1.addActionListener(listener);
            btn2.addActionListener(listener);
            add(btn1);
            add(btn2);
            img = getImage(getDocumentBase(),"jewel.gif");
        }
        
  4. inEventListener() でクリックされたボタンを調べて num を増減します。
    getSource() で Object を取得して、どの button が押されたかを調べます。
    btn1 のときはインクリメント、btn2 のときはデクリメントして repaint() で再描画します。
        class inEventListener implements ActionListener
        {   public void actionPerformed(ActionEvent e)
            {   Object source = e.getSource();
                if (source == btn1)
                    if (num<10)
                    {   num++;
                        repaint();
                    }
                if (source == btn2)
                   if (num>0)
                   {    num--;
                        repaint();
                   }
            }
        }
        

Java Game Program