ボタンの使い方

 

ボタンが押されたかどうかを判定する。


【文法】
import java.applet.*; import java.awt.Graphics; import java.awt.event.*; import java.awt.Button; public class ○○○ extends Applet implements ActionListener { int i=0; private Button b = new Button("Push Here"); // ボタンを定義する // init()はアプレットが起動した時に呼ばれる public void init() { add(b); b.addActionListener(this); } // actionPerformed()はアクションが発生したとき(ボタンが押された時)に呼ばれる public void actionPerformed(ActionEvent e){ } // paint()は画面が再描画された時に呼ばれる public void paint(Graphics g) { } }


【例】ボタンを1個作り、押されたらコマンド画面に押された回数を表示する

import java.applet.*;
import java.awt.Graphics;
import java.awt.event.*;
import java.awt.Button;
public class button1 extends Applet implements ActionListener
{
    int i=0;                                       // ここに書かれた文はクラス全体で有効 
    private Button b = new Button("Push Here");    // ボタンを定義する

    // init()はアプレットが起動した時に呼ばれる
    public void init() {
        add(b);
        b.addActionListener(this);
    }

    // actionPerformed()はアクションが発生したとき(ボタンが押された時)に呼ばれる
    public void actionPerformed(ActionEvent e) {
        i = i + 1;
        System.out.println(i);
        repaint();
    }

    // paint()は画面が再描画された時に呼ばれる
    public void paint(Graphics g) {
    }

}


【問題】
上の例をdrawStringを用いて書き直しなさい。

(ヒント)文字の表示はこちらを参照


実行例

【例】ボタンを2個(ボタンAとボタンB)作り、それぞれのボタンが押されたらコマンド画面に押された回数を表示する

import java.applet.*;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.*;

public class button2 extends Applet implements ActionListener
{
    int i1=0;                            // ここに書かれた文はクラス全体で有効 
    int i2=0;                            // ここに書かれた文はクラス全体で有効 
    private Button b1 = new Button("A"); // ボタン1(Aボタン)を定義する
    private Button b2 = new Button("B"); // ボタン2(Bボタン)を定義する

    // init()はアプレットが起動した時に呼ばれる
    public void init() {
        add(b1);  // ボタン1(Aボタン)を表示
        add(b2);  // ボタン2(Bボタン)を表示
        b1.addActionListener(this);   // ボタン1(Aボタン)に機能を与える
        b2.addActionListener(this);   // ボタン2(Bボタン)に機能を与える
    }

    //actionPerformed()はアクションが発生したとき(ボタンが押された時)に呼ばれる
    public void actionPerformed(ActionEvent e) {
        String c;
        c = e.getActionCommand();  // ボタンのラベルの文字を取得する
        
        //ボタンAが押されたときの処理
        if(c == "A") {
            i1 = i1 + 1;
                System.out.println("i1 = " + i1);
        }
        //ボタンBが押されたときの処理
        if(c == "B") {
            i2 = i2 + 1;
                System.out.println("i2 = " + i2);               
        }
        repaint();  // paint()を呼び出す
    }

    // paint()は画面が再描画された時に呼ばれる
    public void paint(Graphics g) {
    }


}

【問題】
上の例をdrawStringを用いて書き直しなさい。

(ヒント)文字の表示はこちらを参照


実行例


【問題】
上の問題にクリアボタンを追加しなさい。
クリアボタンを押すとAとBの値を0にリセットします。


実行例

【問題】
ボタンを3つ(A,B,C)表示し、
 Aを押すと円
 Bを押すと四角形
 Cを押すと三角形
を表示するプログラムを作りなさい。


実行例


【問題】
スロットマシンのプログラムにボタンを3つ(A,B,C)作り、それぞれのボタンをを押したら値が決定するように修正しなさい。


実行例



●ボタンの位置と大きさを指定する方法

public void init() の中に次の2行を追加する

setLayout(null); //自動レイアウトを無効にする
b.setBounds(5,80,100,30); //ボタンの位置と大きさを指定する。この場合、座標は(5,80)、サイズは100×30となる


【例】ボタンを押すたびに数字を1ずつ増やす。
ボタンの座標を(5,50)、サイズを200×80とする


実行例