首页 技术 正文
技术 2022年11月23日
0 收藏 956 点赞 4,929 浏览 1598 个字

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

事件处理的一个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版坦克大战–事件处理】 让坦克动起来–事件处理的准备

点击后背景颜色变化。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731