【 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接口来获得监听功能的.

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

点击后背景颜色变化。

你可能感兴趣的:(java)