1.简单的事件监听

package demo2;

/*
* java事件监听机制
*/
import java.awt.*;
import javax.swing.*;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.nio.ByteOrder; public class Demo1 extends JFrame implements ActionListener {
JPanel m;
JButton jb1, jb2; public static void main(String[] args) {
Demo1 demo = new Demo1();
} public Demo1() {
m = new JPanel();
jb1 = new JButton("黑色");
jb2 = new JButton("红色");
this.add(jb1, BorderLayout.NORTH);
m.setBackground(Color.BLACK);
this.add(m);
this.add(jb2, BorderLayout.SOUTH);
// 注册监听
jb1.addActionListener(this);
jb2.addActionListener(this);
// 指定action命令
jb1.setActionCommand("aa");
jb2.setActionCommand("bb"); this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } @Override
public void actionPerformed(ActionEvent e) {
// 判断哪个按钮被点击
if (e.getActionCommand().equals("aa")) {
System.out.println("点击黑色");
m.setBackground(Color.BLACK);
} else if (e.getActionCommand().equals("bb")) {
System.out.println("点击红色");
m.setBackground(Color.red);
} else {
System.out.println("点击错误");
}
}
}

2.设置普通类Cat进行监听

package demo2;

/*
* java事件监听机制
*/
import java.awt.*;
import javax.swing.*;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.nio.ByteOrder; public class Demo1 extends JFrame implements ActionListener {
JPanel m;
JButton jb1, jb2;
Cat cat; public static void main(String[] args) {
Demo1 demo = new Demo1();
} public Demo1() {
cat = new Cat();
m = new JPanel();
jb1 = new JButton("黑色");
jb2 = new JButton("红色");
this.add(jb1, BorderLayout.NORTH);
m.setBackground(Color.BLACK);
this.add(m);
this.add(jb2, BorderLayout.SOUTH);
// 注册监听
jb1.addActionListener(cat);
jb2.addActionListener(cat);
// 指定action命令
jb1.setActionCommand("aa");
jb2.setActionCommand("bb"); this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } @Override
public void actionPerformed(ActionEvent e) {
// 判断哪个按钮被点击
if (e.getActionCommand().equals("aa")) {
System.out.println("点击黑色");
m.setBackground(Color.BLACK);
} else if (e.getActionCommand().equals("bb")) {
System.out.println("点击红色");
m.setBackground(Color.red);
} else {
System.out.println("点击错误");
}
} // 设计cat内部类
class Cat implements ActionListener { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand().equals("aa")) {
System.out.println("点击黑色");
m.setBackground(Color.BLACK);
} else if (e.getActionCommand().equals("bb")) {
System.out.println("点击红色");
m.setBackground(Color.red);
} else {
System.out.println("点击错误");
}
} }
}

3.上下左右移动

package demo3;

//横着x 竖着y
import java.awt.*;
import javax.swing.*;
import java.awt.event.*; public class Demo3 extends JFrame {
Myframe mp; public static void main(String[] args) {
Demo3 demo = new Demo3();
} public Demo3() {
mp = new Myframe();
this.add(mp);
this.addKeyListener(mp);
this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
} // Myframe定义的面板用于绘图
class Myframe extends JPanel implements KeyListener {
int x = 10, y = 10; public void paint(Graphics g) {
super.paint(g);
g.fillOval(x, y, 10, 10);
} @Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
y += 2;
System.out.println("向下移动");
this.repaint();
} else if (e.getKeyCode() == KeyEvent.VK_UP) {
y -= 2;
System.out.println("向上移动");
this.repaint();
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
x -= 2;
System.out.println("向左移动");
this.repaint();
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
x += 2;
System.out.println("向右移动");
this.repaint();
}
} @Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub } @Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub } }

java事件监听机制的更多相关文章

  1. java事件监听机制2

    今天早上的两点收获: 1.addActionListener(其中的setActionCommand函数就是要对对象进行唯一性的标记,便于消息传来后进行处理.理论上actionlistener可以全部 ...

  2. JAVA事件监听机制的实现

    今天学习了java的事件编程机制,略有体会,先在此记下心得. 第一,首先明确几个概念. 事件源:一个产生或者触发事件的对象.事件:承载事件源状态改变时的信息对象.事件监听器接口:实际上就是一个类,该类 ...

  3. Java事件监听机制与观察者设计模式

    一. Java事件监听机制 1. 事件监听三要素: 事件源,事件对象,事件监听器 2. 三要素之间的关系:事件源注册事件监听器后,当事件源上发生某个动作时,事件源就会调用事件监听的一个方法,并将事件对 ...

  4. JAVA事件监听机制学习

    //事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...

  5. JAVA事件监听机制与实现

    事件监听机制的实现:参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回调函数) 事件有许 ...

  6. java 事件监听机制组成

    事件源(组件) 事件(Event) 监听器(Listener) 事件处理(引发事件后处理方式) 事件监听机制流程图 务必记牢: 确定事件源(容器或组件) 通过事件源对象的addXXXListener( ...

  7. java事件监听机制(自定义事件)

    java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...

  8. 【转】java事件监听机制

    java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中作为参数,一般存在与listerner的方法之中 2.event source ...

  9. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

随机推荐

  1. Android Studio导出JavaDoc时中文乱码问题解决

    导出过程中,如果出现JavaDoc中文乱码的问题,可以在Other command line arguments栏目添加命令参数:-encoding UTF-8 -charset UTF-8(如果是G ...

  2. Hadoop系列009-NameNode工作机制

    本人微信公众号,欢迎扫码关注! NameNode工作机制 1 NameNode & SecondaryNameNode工作机制 1.1 第一阶段:namenode启动 1)第一次启动namen ...

  3. win10激活(免费+永久)视频教程

    U盘重装Win10系统视频教程 好久不见,不知同学们有没有想我~ 最近因为工作太忙所以好久都没有写文章了,很多朋友希望我推一期win10激活教程,所以今天带三胖打完针后,开始写一期win10激活教程: ...

  4. nginx 报错502Bad Gateway

    场景: 目前在ECS中起了多个node服务,使用forever进程守护,最近,打开线上页面发现报错502 Bad Gateway;同时部分静态资源访问不到.(之前可以的): 解决: 首先查看nginx ...

  5. 跟王思聪热狗图一样大热的Redis,还不赶紧来Get一下?

    前言 不禁喊出一句ig牛逼!哈哈哈 这个话题是不是有点过时了?但说到Redis,真的是被强行灌输的,到处都会被安利Redis,吓得只会mysql和oracle的我,赶紧去get一波.. 数据库种类 关 ...

  6. JS 数组、对象的深拷贝

    博客地址:https://ainyi.com/72 JavaScript 程序中,对于简单的数字.字符串可以通过 = 赋值拷贝 但是对于数组.对象.对象数组的拷贝,就有浅拷贝和深拷贝之分 浅拷贝就是当 ...

  7. 并发concurrent---2

    背景:并发知识是一个程序员段位升级的体现,同样也是进入BAT的必经之路,有必要把并发知识重新梳理一遍. 并发concurrent: 使用ThreadLocal可以实现线程范围内共享变量,线程A写入的值 ...

  8. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

  9. JS 的继承

    1:原生链:prototype 儿子能够继承父亲的属性,也可以觉得遗传基因不好自己改属性,(但是不能改变老爸的属性). 看例子:             function farther(){     ...

  10. HotSpot jdk 资料汇总

    http://www.oracle.com/technetwork/java/index.html https://bugs.java.com/bugdatabase/ https://docs.or ...