JAVA——44.java事件处理机制

【java事件处理机制】事件源、事件(处理)对象、实现事件监听器
【java事件模型的几个步骤】1.要确定事件源是谁,比如按钮1(会触发点击事件或动作事件)2.要确定会发生什么样的事件,比如动作事件3.要实现事件监听器(大部分都是接口)。要把事件监听器对象和事件源的某个事件关联起来,这个步骤被称作注册监听,事件源被注册监听为某个监听器的子类对象来处理。
【java事件处理机制】是一种委托事件模型。就是把某个事件源委托给事件监听器的对象来处理,就是注册监听,这个监听器对象随时监听这个事件源上的特定的事件类型,一旦成功,就会自动调用事件处理程序来处理这个事件
练习一、点击按钮一,显示“你点击了按钮”对话框,点击按钮二,显示“你点击了按钮二”对话框

package org.zhaiyujia.pkg1;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class JButtonTest extends JFrame implements ActionListener{
    //2.必须有一个实现子类,比如JButtonTest implements ActionListener接口3.导入ActionListener包
       JPanel p=new JPanel();
       JButton b1,b2;
       public JButtonTest() {
          b1=new JButton("按钮1");
          b2=new JButton("按钮2");
          this.getContentPane().add(p);//将面板添加到窗体上,默认面板铺满整个窗体
          p.add(b1);//默认放在面板行居中,放不下了再放到下一行
          p.add(b2);
          p.setBackground(Color.red);//设置面板颜色为红色,否则看不出效果
          this.setSize(300, 300);
          this.setVisible(true);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          ActionTest at=new ActionTest();
          b1.addActionListener(at);//5.这句话被叫做注册监听,把按钮b1注册为this对象
          //1.因为b1是事件源,所以b1就应该去注册监听,参数应该是addActionListener(一个接口)的一个实现子类
          b2.addActionListener(this);
       }
   public static void main(String[] args) {
          new JButtonTest();
   }
@Override
//事件处理程序
public void actionPerformed(ActionEvent e) {
    //4.报错的原因是因为实现了ActionListener接口,就要重写这个接口中的方法actionPerformed
    JButton b=(JButton)e.getSource();//getSource获取事件源
    if(b==b1) {
        JOptionPane.showMessageDialog(this, "你点击了按钮1");
    }//6.弹出一个对话框
    else {
        JOptionPane.showMessageDialog(this, "你点击了按钮2");
    }

}
}
class ActionTest implements ActionListener{          //现在两个类文件写到一起,但其实这样不好
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, "你点击了按钮");//null代表屏幕的正中
    }
}

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值