zoukankan      html  css  js  c++  java
  • Java事件处理机制1

    实现一个小程序,怎样通过点击不同的按钮,让面板的背景色发生相应的变化,如图:

     1 public class Demo2 extends JFrame implements ActionListener{
     2     JPanel mp=null;   
     3     JButton btn1,btn2;
     4     
     5     public static void main(String[] args) {
     6         Demo2 demo=new Demo2();
     7     }
     8     
     9     public Demo2(){
    10         mp=new JPanel();
    11         btn1=new JButton("黑色");
    12         btn2=new JButton("红色");
    13         
    14         this.add(btn1,BorderLayout.NORTH);
    15         mp.setBackground(Color.BLACK);
    16         this.add(mp);
    17         this.add(btn2,BorderLayout.SOUTH);
    18         
    19         Cat myCat=new Cat();
    20         
    21         //在事件源(btn1)的身上注册监听者
    22         btn1.addActionListener(this);     //这里的this指的是demo
    23         btn1.addActionListener(myCat);    //从这句话就可以推出事件源对象是btn1,事件监听对象是myCat
    24         //指定action命令(区分黑色按钮还是红色按钮)
    25         btn1.setActionCommand("aa");
    26         
    27         btn2.addActionListener(this);
    28         btn2.setActionCommand("bb");
    29         
    30         this.setSize(200,150);
    31         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    32         this.setVisible(true);
    33     }
    34 
    35     //对事件处理的方法
    36     @Override
    37     public void actionPerformed(ActionEvent e) {
    38         //判断是哪个按钮被点击
    39         if(e.getActionCommand().equals("aa")){
    40             System.out.println("你点击了黑色按钮");
    41             mp.setBackground(Color.BLACK);
    42         }else if(e.getActionCommand().equals("bb")){
    43             System.out.println("你点击了红色按钮");
    44             mp.setBackground(Color.RED);
    45         }else{
    46             System.out.println("不知道");
    47         }
    48     }
    49 }
    50 //任何一个类,只要实现了相应的借口,就可以去监听某个事件源
    51 class Cat implements ActionListener{
    52     public void actionPerformed(ActionEvent arg0) {
    53         if(arg0.getActionCommand().equals("aa")){
    54             System.out.println("猫猫也知道你按下黑色按钮");
    55         }else if(arg0.getActionCommand().equals("bb")){
    56             System.out.println("猫猫也知道你按下红色按钮");
    57         }
    58     }
    59 }

    为了演示一个事件源可以有多个监听者, 增加了一个Cat类。

    这里的事件源就是JButton对象btn1,btn2

    事件监听者是demo,myCat

    事件处理方法actionPerformed()函数

    事件对象是37和52行的ActionEvent对象。

    运行程序效果如下:

    点击黑色按钮,效果如下:

    再点击红色按钮,效果如下:

  • 相关阅读:
    Bootstrap3 表格-条纹状表格
    Bootstrap3 表格-基本表格
    Bootstrap3 代码-程序输出
    Bootstrap3 代码-变量
    垃圾回收相关(深入理解Java虚拟机中的内容)
    JVM内存管理及GC机制
    关于Spring IOC (DI-依赖注入)需要知道的一切
    关于 Spring AOP (AspectJ) 该知晓的一切
    JDK1.8源码分析之HashMap
    深入理解Java类加载器(ClassLoader)
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7295864.html
Copyright © 2011-2022 走看看