package ch9;import java.awt.event.*;
import javax.swing.*;//定义ClickButtonTest类,继承自JFrame类
public class ClickButtonTest extends JFrame
{
//创建JPanel对象
private JPanel jp=new JPanel();
//创建按扭对象和数组
private JButton jb1 = new JButton("按钮一");
private JButton jb2 = new JButton("按钮二");
private JButton jb3 = new JButton("按钮三");
private JButton[] jb=new JButton[]{jb1,jb2,jb3};
//创建标签对象,传入显示语句"请点击按钮"
private JLabel jl=new JLabel("请点击按钮");
//声明计数器count,初始化为0
private int count=0;
//构造方法
public ClickButtonTest()
{
//将按扭添加进JPanel
for(int i=0;i<jb.length;i++){
jp.add(jb[i]);
}
//添加标签jl到JPanel
jp.add(jl);
//添加JPanel到窗体
this.add(jp);
//设置标题
this.setTitle("点按钮,记录点击按钮名和点击次数");
//为jb1按钮注册一个监听器,监听器设置为匿名内部类
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
ClickButtonTest.this.jl.setText(jl.getText()+"。按钮一同时注册了两个监听器");
}
});
//为每个按钮注册监听器,监听器设置为匿名内部类
for(int i=0;i<jb.length;i++){
jb[i].addActionListener(new ActionListener()
{
//实现ActionListener接口中的方法
public void actionPerformed(ActionEvent e)
{
//修改标签的内容
if(e.getSource()==jb1)
{
ClickButtonTest.this.jl.setText("您点击的是按钮一,您合计点击了"+(++count)+"次按钮");
}
else if(e.getSource()==jb2)
{
ClickButtonTest.this.jl.setText("您点击的是按钮二,您合计点击了"+(++count)+"次按钮");
}
else if(e.getSource()==jb3)
{
ClickButtonTest.this.jl.setText("您点击的是按钮三,您合计点击了"+(++count)+"次按钮");
}
}
});

//设置窗体的位置、大小、可见性及关闭
this.setBounds(100,100,480,130);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public static void main(String[] args)
{
//创建窗体对象
new ClickButtonTest();
}
}