【 java版坦克大战--事件处理】 让坦克动起来--事件处理的准备
要能够控制坦克运动,必须用到事件处理的知识.
事件处理的一个demo.
/**
* 事件处理机制:委派事件模型.指当事件发生的时候,产生事件的对象(事件源),会把此
* "消息"传递给"事件的监听者"的一种处理方式,而这里的"信息"指java.awt.event事件类库种
* 某个类创建的对象. 在java种,消息 是一种事件对象.
*
*
* 事件源-----事件(一个事件对象)----->事件监听者[事件处理方法]
*/
package com.test3;
import java.awt.*;
import javax.swing.*; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Demo9_3 extends JFrame implements ActionListener{
JPanel mp = null;
JButton jb1=null,jb2=null;
public static void main(String[] args) {
Demo9_3 demo9_3 = new Demo9_3();
}
public Demo9_3(){
mp = new JPanel();
jb1 = new JButton("黑色");
jb2 = new JButton("红色"); this.add(jb1,BorderLayout.NORTH);
mp.setBackground(Color.black);
this.add(mp);
this.add(jb2,BorderLayout.SOUTH);
Cat myCat1 = new Cat(); //注册监听 对象->实例.实例监听.
jb1.addActionListener(this);
jb1.addActionListener(myCat1);
//指定action命令.如果jb1被点击,黑色command被传递.
jb1.setActionCommand("黑色"); jb2.addActionListener(this);
jb2.setActionCommand("红色"); this.setSize(200,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//事件处理方法
@Override
public void actionPerformed(ActionEvent e) {
// System.out.println("ok");
//判断是哪个按钮被点击
if(e.getActionCommand().equals("黑色")){
System.out.println("黑色被点击了");
mp.setBackground(Color.black);
}else if(e.getActionCommand().equals("红色")){
System.out.println("红色被点击了");
mp.setBackground(Color.red);
}
}
} class Cat implements ActionListener{ @Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("黑色")){
System.out.println("猫猫知道你按下黑色按钮了");
}else if(e.getActionCommand().equals("红色")){
System.out.println("猫猫知道你按下红色按钮了");
}
} }
运行后.点击按钮console显示如下.
其中有两个监听者,分别是this,mycat1二者都是通过implements ActionListener接口来获得监听功能的.

点击后背景颜色变化。
【 java版坦克大战--事件处理】 让坦克动起来--事件处理的准备的更多相关文章
- HTML坦克大战学习02---坦克动起来
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
上篇我们完成了地图的信息获取和碰撞检测,这篇我们整合到程序中. 在这之前我们改造一下Tank类,使它更加模块化,共容易理解: 1.改造后的Tank类声明如下: class Tank : public ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
1.先定义坦克的一些属性 class Tank : public CCSprite { public : Tank(); ~Tank(); static Tank* createTankWithTan ...
- java版飞机大战 实战项目详细步骤.md
[toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...
- java版飞机大战代码
@ 目录 前言 Plane PlaneStatus类 Power类 Gift Diji play类 over类 MainFrame主类 MyZiDan DijiZiDan Before 前言 很久之前 ...
- Java坦克大战 (七) 之图片版
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学 ...
- HTML5-坦克大战一完成坦克上下左右移动的功能(一)
坦克大战一完成坦克上下左右移动的功能 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 【 java版坦克大战--事件处理】 坦克动起来了
折腾了这么久,坦克总算能动了.只贴代码编辑不给上首页,花了半个小时的时间写了n多注释. 再顺便把绘图的原理发在这里: 绘图原理 Component类提供了两个和绘图有关的重要方法: ① paint ...
- 【 java版坦克大战--绘图技术】 绘制坦克
通过上一节,我们学会的用java绘图.那现在就用java绘制自己坦克. 首先通过分析坦克由这几部分组成.如图 各个部件的长宽如图.15,10为圆心. /** * 坦克游戏的1.0版 * 1.画出坦克 ...
- 【java版坦克大战---准备篇】 java 绘图
要写坦克大战当然要先画出坦克.java画图是基础. package com.game; import java.awt.*; import javax.swing.*; public class Pr ...
随机推荐
- 使用dispatch_once:创建单列
无论是爱还是恨,你都需要单例.实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单例是 ...
- J2EE之ServletContext读取资源文件
ServletContext读取资源文件内容的方式有两种: 方法1. public void doGet(HttpServletRequest request, HttpServletResponse ...
- vs2010突然变慢解决方法
方法一: 开始>>运行>>devenv.exe /resetuserdata
- MySQL主主复制+LVS+Keepalived实现MySQL高可用性1
http://bestvivi.com/2015/09/09/MySQL%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6+LVS+Keepalived%E5%AE%9E%E7% ...
- Linq to SQL只支持SQL Server(所选对象使用不支持的数据提供程序)
- java与.net平台之间进行RSA加密验证
RSA加密算法虽然不分平台,标准都是一样的,但是各个平台的实现方式都不尽相同,下面来我来说说java与.net平台之间该如何进行RSA加密验证,即java端加密->.net端验证和.net端加密 ...
- Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)
Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...
- A Swift Tour(3) - Functions and Closures
Functions and Closures 使用func来声明函数,通过括号参数列表的方式来调用函数,用 --> 来分割函数的返回类型,参数名和类型,例如: func greet(name: ...
- SQL 有父标识的 递归查询
递归查询,临时表的高级应用 WITH temp AS ( --父项 SELECT * FROM Ar_Area WHERE Ar_Parent = UNION ALL --递归结果集中的下级 SELE ...
- CDN调度器HAProxy、Nginx、Varnish
http://www.ttlsa.com/web/the-cdn-scheduler-nginx-haproxy-varnish/ CDN功能如下:1.将全网IP分为若干个IP段组,分组的依据通常是运 ...