【Java】【事件处理机制】

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
/* 栗子 事件监听了解*/
class Cat implements ActionListener{    public void actionPerformed(ActionEvent arg0){        if(arg0.getActionCommand().equals("黑色")){            System.out.println("Cat也知道你按下了黑色按钮");        }        else if(arg0.getActionCommand().equals("红色")){            System.out.println("Cat也知道你按下了红色按钮");        }        else{            System.out.println("Cat什么也不知道");        }    }}public class Test_Action extends JFrame implements ActionListener {    //定义组件    JPanel mp = null;    JButton jb1,jb2;

public Test_Action(){        mp = new JPanel();        jb1 = new JButton("黑色");        jb2 = new JButton("红色");        //设定布局管理器

//加入组件        mp.setBackground(Color.black);        this.add(mp);        this.add(jb1,BorderLayout.NORTH);        this.add(jb2,BorderLayout.SOUTH);

//猫类在监听        Cat mycat1 = new Cat();        jb1.addActionListener(mycat1);        jb2.addActionListener(mycat1);        //注册监听        jb1.addActionListener(this);        jb2.addActionListener(this);

//指定action命令        jb1.setActionCommand("黑色");        jb2.setActionCommand("红色");

//窗体设置        this.setTitle("事件处理机制");        this.setSize(400,300);        this.setLocationRelativeTo(null);        this.setVisible(true);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//对事件处理的方法    public void actionPerformed(ActionEvent e){        if(e.getActionCommand().equals("黑色")){            System.out.println("点击了黑色按钮");        }else if(e.getActionCommand().equals("红色")){            System.out.println("点击了红色按钮");        }else{            System.out.println("不知道");        }    }

public static void main(String[] args){        Test_Action ta = new Test_Action();    }

}
import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;/* 栗子 加深对事件处理机制的理解 1. 通过上下左右键,来控制一个小球的移动*/

//定义自己的面板class MyPanels extends JPanel implements KeyListener{    int x = 10,y = 10;    public void paint(Graphics g){        super.paint(g);        g.fillOval(x,y,10,10);    }

//按键被按下    public void keyPressed(KeyEvent e){        System.out.println("被按下" + ((char)e.getKeyCode()));        if(e.getKeyCode() == KeyEvent.VK_DOWN){            System.out.println("向下");            y++;        }else if(e.getKeyCode() == KeyEvent.VK_UP){            System.out.println("向上");            y--;        }else if(e.getKeyCode() == KeyEvent.VK_LEFT){            System.out.println("向左");            x--;        }else if(e.getKeyCode() == KeyEvent.VK_RIGHT){            System.out.println("向右");            x++;        }

//调用repaint(),重绘界面        this.repaint();

}

//按键被弹起    public void keyReleased(KeyEvent e){

}

//keyTyped代表具体的值被输出    public void keyTyped(KeyEvent e){

}}public class Test_Action extends JFrame {    //定义组件    MyPanels mp = null;

public Test_Action(){        mp = new MyPanels();

//监听        this.addKeyListener(mp);

//加入组件        this.add(mp);        //设置窗体        this.setTitle("键盘事件监听");        this.setSize(400,300);        this.setLocationRelativeTo(null);        this.setVisible(true);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }

public static void main(String[] args){        Test_Action ta = new Test_Action();    }

}

按上下左右键可相应的上下左右

Java事件处理机制--深入理解

几个重要的概念:1. 事件源 2. 事件 3. 事件监听器

1. 事件源是一个产生(或触发)事件的对象,比如前面的JButton的一个对象jb1. 当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能会生成多个不同的事件)。如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。

2.事件就是承载事件源状态改变时的信息对象。Java.awt.event 包和 javax.swing.event包中定义了各种事件类型,常见的事件类有:

ActionEvent        按下按钮,或双击一个列表项或选中某个菜单时

AdjustmentEvent 当操作一个滚动条

ComponentEvent  当一个组件隐藏、移动、改变大小时

ContainerEvent    当一个组件从容器中加入或者删除时



原文地址:https://www.cnblogs.com/suren2017/p/8442498.html

时间: 2024-10-12 16:04:10

【Java】【事件处理机制】的相关文章

从零开始理解JAVA事件处理机制(2)

第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事件驱动模型初窥 我们要说事件驱动模型是观察者模式的升级版本,那我们就要说说其中的对应关系: 观察者对应监听器(学生) 被观察者对应事件源(教师) 事件源产生事件,监听器监听事件.爱钻牛角尖的朋友可能会说,我擦,什么叫产生事件,监听事件,事件事件到底什么? 莫慌,如果我们用代码来说事,事件源它就是个类,事件就是

从零开始理解JAVA事件处理机制(3)

我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们点击鼠标,鼠标发送指令,执行代码. 一:鼠标点击事件处理模型基础版 这个时候,我们必须去查看下JDK中相关类型.对照着上一节<从零开始理解JAVA事件处理机制(2)>中的UML图,我们很快发现,对应HomeworkListener,JDK中有MouseListener,其实我们靠分析也能得知,Mo

[转]Java事件处理机制- 事件监听器的四种实现方式

原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: Java代码   import javax.swing.*; import java.awt.*; import java.awt.event.*; /** *Java事件处理机制:自身类作为事件监听器 *@author Winty([email protected]) *@version 200

Java事件处理机制1

实现一个小程序,怎样通过点击不同的按钮,让面板的背景色发生相应的变化,如图: 1 public class Demo2 extends JFrame implements ActionListener{ 2 JPanel mp=null; 3 JButton btn1,btn2; 4 5 public static void main(String[] args) { 6 Demo2 demo=new Demo2(); 7 } 8 9 public Demo2(){ 10 mp=new JPan

Java事件处理机制和适配器

最重要的是理解事件源,监视器,处理事件的接口的概念. 1.事件源:是能够产生时间的对象都可以叫事件源,比如文本框,按钮,下拉列表之类的组件. 2.监视器:事件源要产生事件,必须要有什么东西去监视它,以便作出相应啊,那就是监视器,监视器的作用是对事件源进行监视,以便对发生的时间进行处理. 事件源通过相应的方法注册自己的监听器.比如addListener(监听器); 3.处理事件的接口:监视器负责处理事件源发生的事件,监视器是一个对象,为了处理事件源发生的事件,监视器这个对象会自动调用一个方法来处理

Java Swing事件处理机制

Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: 系统工具包线程 :负责将从系统事件队列捕获在该程序界面上的鼠标和键盘操作等底层事件,并把这些事件转换成 Swing的相应对应事件对象放入Swing的事件队列中,并循环该线程: 事件派发线程 :负责GUI组件的绘制和更新,通过不断从事件队列中获取事件并调用事件监听器的事件处理方法来 处理事件,来进行

Java 图形界面事件处理机制

Java语言提供了一系列的用户图形界面的组件,主要有两个包:java.awt,和 javax.swing. 其中,awt包是早期包,swing包是后期提供的用户界面包. swing包组件与awt包组件的区别在于:swing包组件 通常不依赖于 当前平台GUI功能. swing组件优势:1.跨平台,2.移植性强,3.swing扩展了awt包,组件更加丰富,使用更加方便. 事件处理机制: Java中使用委托事件模型来处理事件. 委托事件模型分为三个部分:事件源.事件对象.事件监听器. 事件源:指可以

java的事件处理机制基础

java的事件处理机制在我看开是应该建立在swing的基础之上的,因为在se阶段,java的事件处理就是监听图形界面的,我说的是一般,当然也有特殊,对于事件,对于我应该不会陌生,这个事件的意义和B/S开发里面的事件是相同的,同样的也具有事件源,事件监听和事件响应,这种机制是为了更好的完成人机交互,这个东西也是在绘图防技术方面的重点,原理不是很难理解,难理解的就是事件处理的底层因素,对于这个,同样的,还是应该先完成功能,然后做一些理解.下面是我在学习过程中的一些代码: package Test;

core java 8~9(GUI &amp; AWT事件处理机制)

MODULE 8 GUIs--------------------------------GUI中的包: java.awt.*; javax.swing.*; java.awt.event.*; 要求:1)了解GUI的开发流程:2)掌握常用的布局管理器 开发GUI图形界面的步骤-------------------------------1.选择容器 1)Frame容器 有缩小/最大化/关闭等按钮,顶层容器 2)Dialog对话框 通常依赖于容器,不单独出现 3)Applet 依赖于浏览器的支持