Java事件基础

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);
    }

}
时间: 2024-10-20 04:51:53

Java事件基础的相关文章

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

Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境 2 进程:执行中的程序一个进程至少包含一个线程 3 单线程:程序中只存在一个线程,实际上主方法就是一个主线程 4

Java 并发基础

Java 并发基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及部分运行时环境,因此编程时需要小心,确保线程不会妨碍同一进程中的其他线程; 多线程优势 进程之间不能共享内存,但线程之间共享内存/文件描述符/进程状态非常容易. 系统创建进程时需要为该其分配很多系统资源(如进程控制块),但创建线程的开销要小得多,因此线程实现多任务并发比进程效率高. Java语言内置多线程支持,而不是单纯采

Java编程基础-面向对象(中)

本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一些特性. 1.static关键字的特点: a)随着类的加载而加载,也就是说,静态会随着类的消失而消失,说明它的生命周期最长. b)优先于对象存在,明确一点,静态是先存在的,对象是后存在的. c)被类的所有对象共享. d)可以通过类名调用. 2.静态变量 在一个java类中,可以使用static关键字

Java Script基础(三) 函数

Java Script基础(三) 函数 一.JavaScript中的函数 在JavaScript中,函数类似于Java中的方法,是执行特定功能的代码块,可以重复调用.JavaScript中的函数分为两种,一种是系统函数,另一种是自定义函数. 1.系统函数 系统函数有JavaScript提供,直接调用即可,常用的系统函数包括: parseInt():转换为整数. parseFloat() :转换为浮点数. isNaN():判断是否是非数字,为非数字返回true,数字返回false. eval():

Java Script基础(十) 访问样式表

Java Script基础(十) 访问样式表 动态控制样式表 在JavaScript中,有两种方式可以动态的改变样式属性,一种是使用style属性,另一种是使用样式的className属性.另外控制元素隐藏和显示使用display属性. 1.使用sytle属性 语法: 元素.style.样式属性="值"; 在JavaScript中使用CSS样式与在html中使用CSS少有不同,由于JavaScript中的-表示减号,因此如果样式属性名称中带有"-"则要省去,后面首字

Java Script基础(九) 下拉列表对象

Java Script基础(九) 下拉列表对象 Select下拉列表 属性: options[]:返回包含下拉列表中的所有选项的一个数组. selectedIndex:设置返回下拉列表中被选项目的索引号. length:返回下拉列表框中选项的数目.如果设置为0,表示清空列表框. 方法: add(new,old):添加一个选项.如果old为空则添加到末尾,old有值则添加到old之前. 事件: onchange:当改变选项时调用的事件. Option对象 属性: text:设置或返回某个选项的文本

Java Web基础 --- Servlet 综述(实践篇)

摘要: 伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发.本文从一个简单的 Servlet 例子开始,说明了如何开发.配置一个 Servlet.此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理.Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便我们对Servlet有一个更全面的了解. 本篇主要介绍 Servlet 实践方面的知识,更多关注于S

Java Applet 基础

Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程序. 如下所示是独立的 Java 应用程序和 applet 程序之间重要的不同: Java 中 Applet 类继承了 java.applet.Applet 类. Applet 类没有定义 main(),所以一个 Applet 程序不会调用 main() 方法. Applet 被设计为嵌入在一

2018.6.13 Java语言基础复习总结

Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行. 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序. 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点. 1.3.2 C++语言 是具有面向对象