动作事件

     当需要按钮被按下时执行一定的任务,就要为按钮编写动作事件监听器的代码,并向按钮注册动作事件监听器。编写动作事件监听器需要实现ActionListener监听接口,并实现actionPerformed方法

ActionListener监听接口声明了actionPerformed方法,用于处理动作事件,在发生操作时调用,语法是:

public void actionPerformed(ActionEvent e);

按钮中注册与注销动作事件监听器的方法如下
    public void addActionListener(ActionListener l):为按钮注册指定的监听器。
    public void removeActionListener(ActionEvent l):注销按钮的监听器

事件源与监听器并非只能一对一,而还可以一对多,多对一
~一个事件源可以注册多个同类型的监听器,也可以注册多种,多个事件监听器
~多个事件源可以注册一个事件监听器(就好比一个顾客到商场买东西。可能有很多柜台的售货员都在关注这个顾客,都可以对这个顾客的动作或提问做出响应,同时每一个售货员又可以回答和解决多个顾客的问题)


实现代码:
package ch9;

import java.awt.event.*;

import javax.swing.*;

public class ClickButton extends JFrame
{
	private JPanel jp = new JPanel();   //创建面板JPanel对象
	private JButton button1 = new JButton("按钮1");
	private JButton button2 = new JButton("按钮2");
	private JButton button3 = new JButton("按钮3"); //创建按钮对象和数组
	private JButton [] button = new JButton[] {button1,button2,button3};
	private JLabel jl = new JLabel("请点击按钮");
	private int Count = 0;
	ClickButton()
	{
		for(int i=0;i<button.length;i++)
		{
			jp.add(button[i]);
		}
		jp.add(jl);
		this.add(jp);
		this.setTitle("点击按钮,记录点击按钮名及次数");
		this.setBounds(100,300,400,200);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		button1.addActionListener(new ActionListener()    //按钮一同时注册两个监听器
		{
			public void actionPerformed(ActionEvent a)    //实现ActionListener接口的方法
			{
			     ClickButton.this.jl.setText(jl.getText()+".按钮一同时注册两个监听器");
			}
	    });
		for(int i=0;i<button.length;i++)
		{
			button[i].addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent a)
				{
					if(a.getSource()==button1)
					{
						ClickButton.this.jl.setText("您单击的是按钮一,合计单击了"+(++Count)+"次按钮");//修改标签内容
					}
					else if(a.getSource()==button2)
					{
						ClickButton.this.jl.setText("您单击的是按钮二,合计单击了"+(++Count)+"次按钮");
					}
					else if(a.getSource()==button3)
					{
						ClickButton.this.jl.setText("您单击的是按钮三,合计单击了"+(++Count)+"次按钮");
					}
				}
			});
		}
     }
	public static void main(String args[])
	{
		new ClickButton();
	}
}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值