【 java版坦克大战--事件处理】 让坦克动起来--事件处理的准备

要能够控制坦克运动,必须用到事件处理的知识.

事件处理的一个demo.

 1 /**
 2  * 事件处理机制:委派事件模型.指当事件发生的时候,产生事件的对象(事件源),会把此
 3  * "消息"传递给"事件的监听者"的一种处理方式,而这里的"信息"指java.awt.event事件类库种
 4  * 某个类创建的对象. 在java种,消息 是一种事件对象.
 5  * 
 6  * 
 7  * 事件源-----事件(一个事件对象)----->事件监听者[事件处理方法]
 8  */
 9 package com.test3;
10 import java.awt.*;
11 import javax.swing.*;
12 
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
15 public class Demo9_3 extends JFrame implements ActionListener{
16     JPanel mp = null;
17     JButton jb1=null,jb2=null;
18     public static void main(String[] args) {
19         Demo9_3 demo9_3 = new Demo9_3();
20     }
21     public Demo9_3(){
22         mp = new JPanel();
23         jb1 = new JButton("黑色");
24         jb2 = new JButton("红色");
25         
26         this.add(jb1,BorderLayout.NORTH);
27         mp.setBackground(Color.black);
28         this.add(mp);
29         this.add(jb2,BorderLayout.SOUTH);
30         Cat myCat1 = new Cat();
31         
32         //注册监听  对象->实例.实例监听.
33         jb1.addActionListener(this);
34         jb1.addActionListener(myCat1);
35         //指定action命令.如果jb1被点击,黑色command被传递.
36         jb1.setActionCommand("黑色");
37         
38         jb2.addActionListener(this);
39         jb2.setActionCommand("红色");
40         
41         this.setSize(200,150);
42         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43         this.setVisible(true);
44     }
45     //事件处理方法
46     @Override
47     public void actionPerformed(ActionEvent e) {
48 //        System.out.println("ok");
49         //判断是哪个按钮被点击
50         if(e.getActionCommand().equals("黑色")){
51             System.out.println("黑色被点击了");
52             mp.setBackground(Color.black);
53         }else if(e.getActionCommand().equals("红色")){
54             System.out.println("红色被点击了");
55             mp.setBackground(Color.red);
56         }
57     }
58 }
59 
60 class Cat implements ActionListener{
61 
62     @Override
63     public void actionPerformed(ActionEvent e) {
64             if(e.getActionCommand().equals("黑色")){
65                 System.out.println("猫猫知道你按下黑色按钮了");
66             }else if(e.getActionCommand().equals("红色")){
67                 System.out.println("猫猫知道你按下红色按钮了");
68             }
69     }
70     
71 }

运行后.点击按钮console显示如下.

其中有两个监听者,分别是this,mycat1二者都是通过implements ActionListener接口来获得监听功能的.

 

点击后背景颜色变化。

如果感觉不错,请 一个!
by simpman
原文地址:https://www.cnblogs.com/simpman/p/3565772.html