• 【 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
  • 相关阅读:
    Microsoft Dynamics CRM 2011 配置好的IFD环境 怎么制作证书?
    Microsoft Dynamics CRM 2011 Plugin中PluginExecutionContext.InputParameters["Target"]中的Target是从哪来的?
    编程写一个方法时,注意方法中传参数的数量最好不要超过5个,超过5个怎么办?可以用struct或class,或一个字典类
    Microsoft Dynamics CRM 2011 常用JS 按F12 改动窗体上数据的方法
    JS 实现轮播图
    JS晃动的花朵
    定时器的应用 盒子的移动
    JavaScript 经典实例
    累加 9*9乘法表 阶乘
    函数方法
  • 原文地址:https://www.cnblogs.com/simpman/p/3565772.html
Copyright © 2020-2023  润新知