package cn.Douzi.Event;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*; public class Demo_moreListener extends JFrame { Mypanel mp = null; public Demo_moreListener() {
// TODO Auto-generated constructor stub
mp = new Mypanel(); this.add(mp);
//注册监听
this.addMouseListener(mp);
this.addKeyListener(mp);
this.addMouseMotionListener(mp);
this.addWindowListener(mp); this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { Demo_moreListener test = new Demo_moreListener();
test.setVisible(true);
} } //1.让Mypanel知道鼠标按下的消息,并且知道点击的位置(x,y)
//2.让Mypanel知道哪个键按下
//3.让MyPanel知道鼠标移动,拖拽
//4.让MyPanel知道窗口的变化:变化,最小化,最大化
class Mypanel extends JPanel implements WindowListener, MouseListener, KeyListener, MouseMotionListener { @Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub } //窗口正在关闭
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("正在关闭........");
} //窗口关闭
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub } @Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub } //窗口最小化
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
} //窗口激活
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("窗口激活");
} @Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("窗口最小化");
} //鼠标移动
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub } @Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("鼠标移动");
} //键事件
//键输入q w F1
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub } //键按下,未松开
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getKeyChar() + "键被按下");
} //键松开
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub } //鼠标点击
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("鼠标点击了 x = " + e.getX() + "y = " + e.getY());
} //鼠标按下,但是还没有松开事件
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub } //鼠标按下,然后 松开 的事件
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub } //鼠标移动到Mypanel
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("鼠标来"); } //鼠标离开Mypanel
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("鼠标走");
} @Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
} }

Java事件基础的更多相关文章

  1. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  2. Java script基础

    Java script基础 Js的每个语句后面都要有分号. <script  type="text/java script">所有JS内容</script> ...

  3. Android开发之Java必备基础

    Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...

  4. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

  5. Java 并发基础

    Java 并发基础 标签 : Java基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及 ...

  6. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  7. [ Java学习基础 ] Java的抽象类与接口

    一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...

  8. Java - 33 Java Applet基础

    Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独 ...

  9. java并发基础(二)

    <java并发编程实战>终于读完4-7章了,感触很深,但是有些东西还没有吃透,先把已经理解的整理一下.java并发基础(一)是对前3章的总结.这里总结一下第4.5章的东西. 一.java监 ...

随机推荐

  1. ubuntu下编译ffmpeg+SDL+ffplay提取motion vector

    编译ffmpeg: 第一步: 从官网http://ffmpeg.org/下载最新版本. 解压tar -xjvf ffmpeg-3.3.1.tar.bz2 进入目录cd ffmpeg-3.3.1 第二步 ...

  2. windows redis 后台运行

    1. 进入 DOS窗口2. 在进入Redis的安装目录3. 输入:redis-server --service-install redis.windows.conf --loglevel verbos ...

  3. 04_Java基础语法_第4天(数组)_讲义

    今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 01switch语句解构 * A:switch语句解构 * a:switch只能针对某个表达式的值作出判断,从而决定程序执行哪 ...

  4. Alpha阶段敏捷冲刺⑧

    1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 报表能和账单数据结合起来 工作中遇到的困难. 后端和程序的交互还是没 ...

  5. Oracle中SYS_CONNECT_BY_PATH函数的妙用 ;

    Oracle 中SYS_CONNECT_BY_PATH函数是非常重要的函数,下面就为您介绍一个使用SYS_CONNECT_BY_PATH函数的例子,实例如下: 数据准备: ),b )); ', 'A' ...

  6. js & get recursive ids

    js & get recursive ids len = 0; bug for(let i = 0; i < 3; i++) { console.log(`i =`, i); let y ...

  7. Eclipse HTML Editor

    需插件: 1.GEF 3.1 安装程序下载 下载地址: http://download.eclipse.org/tools/gef/downloads/drops/R-3.1-200507071758 ...

  8. JS调用App方法及App调用JS方法

    做App内嵌H5项目时,经常会遇到js与App的交互,最普遍的就是方法的互相调用,那么如何实现方法的互相调用呢? 写在前面: 如果只是小项目且后期扩大的可能性不大的时候,可以忽略,可如果是长期项目的话 ...

  9. 用join取代not in

    写了好几个页面,速度都上不去,瓶颈在于SQL查询.太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据.看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接 ...

  10. linux 配置文件(启动文件、环境文件)启动顺序

    1.登录shell 登录shell时,linux会按一定规则读取启动几个配置文件: /ect/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash ...