Swing 的按钮循环添加点击事件并被公共访问

package Other;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Test extends JFrame{

    private ButtonTest bt;//定义按钮对象
    public Test(){
        //下面this的是初始化JFrame窗口
        this.setTitle("JButton事件例子");//标题
        this.setBounds(200, 200, 400, 300);//位置和大小
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认关闭程序
        this.setVisible(true);//窗体可见
        this.setLayout(null);//清除默认布局方式

        //这里只是实例化了一个对象,可以根据需要用循环实例化多个对象,并且每个对象都有了自己唯一单独的事件绑定
        bt = new ButtonTest(4);//实例化bt按钮
        bt.setText("点我啊啊啊");
        bt.setBounds(100, 100, 100,40);//按钮大小和位置

        this.add(bt);//把按钮添加到jframe
    }

    public static void main(String[] args) {
        new Test();//实例化test的时候执行构造方法就能启动程序
    }   
}

/**
 * 这个类继承了JButton类并且实现了ActionListener接口
 * @author Administrator
 *
 * */
class ButtonTest extends JButton implements ActionListener{
    private int num = 0;

    public ButtonTest(){this.addActionListener(this);}//这里实现空参构造方法
    public ButtonTest(int num){//这里的重载构造方法的参数由自己定义,根据需求来实现
        this.num = num;
        this.addActionListener(this);//给自己添加(绑定)事件
    }

    //下面是get set 方法
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }


    @Override
    public void actionPerformed(ActionEvent e) {

        //这里发生的点击事件由自己定义例如:
        System.out.println(this.num++);
    }
}

你可能感兴趣的:(maxw_find)