动作事件
2016-05-01 11:39
302 查看
当需要按钮被按下时执行一定的任务,就要为按钮编写动作事件监听器的代码,并向按钮注册动作事件监听器。编写动作事件监听器需要实现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(); } }
相关文章推荐
- 调整Poker 在Mac、win下通用键位,解决mac的复制粘贴问题
- [leetcode] 343. Integer Break 解题报告
- 利用R包ggmap进行空间可视化
- 程序的5个区
- Linux Wireless基础知识
- Android 实现简单的画画版一
- Smart210学习记录-------linux驱动中断
- java MD5 加密
- JAVA设计模式之单例模式:内部静态类
- SEL是啥玩意
- [转载]Emmet使用
- &与&&, |与||区别
- Android开发系列三之窗口的常用事件
- 使用Shell脚本实现自动化静默安装Oracle软件
- SWING实现像QQ一样,在右下角弹出提示框
- 头朝上显示性能
- 安装Composer 步骤
- UIButton、UITextField、UISlider、UISwitch、UISegmentedControl
- 批量修改有那么简单吗?
- 两分钟看懂空格替换