当在处理按钮等监听事件时,需要注册监听器,监听器的位置不同,角色就不同,访问的区域就不同。
内部类是在另一个类中声明的,包含内部类的类叫做外嵌类
内部类和外嵌类的关系:
1.内部类的外嵌类的成员变量在内部类中仍有效,内部类的方法也可以调用外嵌类的方法。即内部类可以访问外部类的变量和方法。
2.在内部类的类体中不可以申明类变量和类方法,外嵌类的类体重可以用内部类声明对象作为外嵌类的成员。
三个按钮控制面板的三种颜色

import java.awt.*;
import javax.swing.*;
public class ButtonTest
{public static void main(String[] args){         JFrame frame = new ButtonFrame();frame.setTitle("ButtonTest");      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonFrame extends JFrame
{private JPanel buttonPanel;private static final int DEFAULT_WIDTH = 400;private static final int DEFAULT_HEIGHT = 300;public ButtonFrame(){      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);// 创建按钮对象JButton yellowButton = new JButton("Yellow");JButton blueButton   = new JButton("Blue");JButton redButton    = new JButton("Red");buttonPanel = new JPanel();// 添加按钮到画板buttonPanel.add(yellowButton);buttonPanel.add(blueButton);buttonPanel.add(redButton);    add(buttonPanel);// 创建按钮监听器ColorListener yellowListener = new ColorListener(Color.YELLOW);ColorListener blueListener   = new ColorListener(Color.BLUE);ColorListener redListener    = new ColorListener(Color.RED);// 为每个按钮设置监听器yellowButton.addActionListener(yellowListener);blueButton.addActionListener(blueListener);redButton.addActionListener(redListener);}//内部类监听器private class ColorListener implements ActionListener{private Color backgroundColor;public ColorListener(Color c) {backgroundColor = c;}public void actionPerformed(ActionEvent event) {buttonPanel.setBackground(backgroundColor);//内部类可以访问外部类的变量}}
}

Java监听器的用法(一):内部类监听器相关推荐

  1. java监听器详解_java之监听器详解

    监听器接口定义了一个类要成为监听器必须具备的功能.所有的监听器接口也都必须继承监听器接口基类 java.util.EventListener:EventListener本身没有定义任何方法,它只是一个 ...

  2. java类修饰词和内部类详解

    java类修饰词和内部类详解 控制属性: 同一类内     同一包内      子类     所有类 public            可             可         可       ...

  3. Java编程笔记7:内部类

    Java编程笔记7:内部类 图源:PHP中文网 所谓的内部类,其实就是定义在类中的类.这和Java编程笔记6:接口 - 魔芋红茶's blog (icexmoon.xyz)中提到的接口嵌套的方式有点相 ...

  4. JAVAWEB——监听器(Listener),监听器编写步骤,八大监听器的介绍

    一.关于监听器那些? 监听器:监听某个对象的的状态变化的组件 事件源:被监听的对象 监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器 注册监听器:将监听器与事件源进行绑定 响应行为:监听器 ...

  5. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  6. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  7. 2020-12-17 【 java优先队列的用法】

    java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...

  8. java中import用法

    java中import用法 单类型导入(single-type-import),例如import java.io.File; 按需类型导入(type-import-on-demand),例如 impo ...

  9. java.nio.ByteBuffer用法小结

    转载自  java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...

最新文章

  1. css 自动换行_前端必备!20个CSS小技巧
  2. “当前上下文中不存在名称”解决
  3. 【s操作】手机移动数据网络问题初级解决方案,论手机运营商网络状况
  4. Spring MVC的优势
  5. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课...
  6. ~~堆(数据结构)(附模板题 AcWing 838. 堆排序)
  7. Membership、MembershipUser和Roles类
  8. TDateTime转
  9. 单元素的枚举类型已经成为实现Singleton的最佳方法
  10. 串口调试助手fx2n_串口调试助手发送控制台达PLC命令
  11. c语言矩阵键盘反转法扫描,行列扫描法,反转法,状态机法三种矩阵键盘扫描方法详解 带程序...
  12. win10哪个版本最好用,推荐win10企业版LTSC
  13. 摄影测量前方交会编程实现
  14. 计算机组成原理 / 反汇编实验(2)拆弹实验
  15. 什么情况下你会毫不犹豫地辞职?
  16. Entity Framework Core系列教程-25-Entity Framework Core日志
  17. java web inf_JavaWeb - 访问 WEB-INF 资源几种方式
  18. 使用vue-cli快速构建项目
  19. Cmake传入项目版本号
  20. dns服务器未响应重启就好,网络诊断提示DNS服务器未响应解决方法 - 全文

热门文章

  1. stm8s开发(七) SPI的使用:SPI主机通信!
  2. ESP8266-SDK的硬件定时器
  3. C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板成员函数的实例化
  4. [armv9]-Introducing-Arm-Confidential-Compute-Architecture
  5. [How TO]-virtualbox下安装ubuntu14.04超详细
  6. Selenium 与 PhantomJS
  7. X86汇编——简易通讯录
  8. c#随机数生成编号_使用C#生成随机密码(纯数字或字母)和随机卡号(数字与字母组合)...
  9. 使用GetProcAddress获取ZwUnmapViewOfSection函数指针
  10. HTML5学习笔记(一)(2015-12-2)【新浪云搬运】