GUI(布局管理器)
* FlowLayout(流式布局管理器)
 * 从左到右的顺序排列。
 * Panel默认的布局管理器。
* BorderLayout(边界布局管理器)
 * 东,南,西,北,中
 * Frame默认的布局管理器。
* GridLayout(网格布局管理器)
 * 规则的矩阵
* CardLayout(卡片布局管理器)
 * 选项卡
* GridBagLayout(网格包布局管理器)
 * 非规则的矩阵
###25.15_GUI(窗体监听)
 Frame f = new Frame("我的窗体");
 //事件源是窗体,把监听器注册到事件源上
 //事件对象传递给监听器
 f.addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent e) {
                      //退出虚拟机,关闭窗口
   System.exit(0);
  }
 });
适配器设计模式
* a.什么是适配器
 * 在使用监听器的时候, 需要定义一个类事件监听器接口.
 * 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
 * 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
* b.适配器原理
 * 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
 * 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
 * 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
事件处理
 * 事件: 用户的一个操作
 * 事件源: 被操作的组件
 * 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class Demo1_Frame {
 /**
  * @param args
  */
 public static void main(String[] args) {
  Frame f = new Frame("我的第一个窗口");
  f.setSize(400, 600);       //设置窗体大小
  f.setLocation(500, 50);       //设置窗体位置
  f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
  Button b1 = new Button("按钮一");
  Button b2 = new Button("按钮二");
  f.add(b1);
  f.add(b2);
  f.setLayout(new FlowLayout());     //设置布局管理器
  //f.addWindowListener(new MyWindowAdapter());
  f.addWindowListener(new WindowAdapter() {
   @Override
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });
  
  b1.addMouseListener(new MouseAdapter() {
   /*@Override
   public void mouseClicked(MouseEvent e) { //单击
    System.exit(0);
   }*/
   @Override
   public void mouseReleased(MouseEvent e) { //释放
    System.exit(0);
   }
  });
  
  b1.addKeyListener(new KeyAdapter() {
   @Override
   public void keyReleased(KeyEvent e) {
    //System.exit(0);
    //System.out.println(e.getKeyCode());
    //if(e.getKeyCode() == 32) {
    if(e.getKeyCode() == KeyEvent.VK_SPACE){
     System.exit(0);
    }
   }
  });
  
  b2.addActionListener(new ActionListener() {  //添加动作监听,应用场景就是暂停视频和播放视频
   
   @Override
   public void actionPerformed(ActionEvent e) {
    System.exit(0);
   }
  });
  f.setVisible(true);        //设置窗体可见
 }
}
/*class MyWindowListener implements WindowListener {
 @Override
 public void windowOpened(WindowEvent e) {
 }
 @Override
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
 @Override
 public void windowClosed(WindowEvent e) {
  System.out.println("Closed");
 }
 @Override
 public void windowIconified(WindowEvent e) {
 }
 @Override
 public void windowDeiconified(WindowEvent e) {
 }
 @Override
 public void windowActivated(WindowEvent e) {
 }
 @Override
 public void windowDeactivated(WindowEvent e) {
 }
 
}
*/
/*class MyWindowAdapter extends WindowAdapter {
 @Override
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}*/
 

GUI-适配器设计模式-事件处理的更多相关文章

  1. Java适配器设计模式

    适配器设计模式,一个接口首先被一个抽象类先实现(此抽象类通常称为适配器类),并在此抽象类中实现若干方法(但是这个抽象类中的方法体是空的),则以后的子类直接继承此抽象类,就可以有选择地覆写所需要的方法. ...

  2. [gkk]传智-适配器设计模式,如同电源适配器

    //适配器设计模式 是图形化设计中用的.如同电源适配器 import java.awt.*; inport java.awte public calss MyFrame{ public static ...

  3. JAVA基础—适配器设计模式

    适配器概念 在计算机编程中,适配器模式将一个类的接口适配成用户所期待的.使用适配器,可以使接口不兼容而无法在一起工作的类协调工作,做法是将类自己包裹在一个已经存在的类中. JDK对适配器设计模式的应用 ...

  4. Java设计模式之适配器设计模式(项目升级案例)

    今天是我学习到Java设计模式中的第三个设计模式了,但是天气又开始变得狂热起来,对于我这个凉爽惯了的青藏人来说,又是非常闹心的一件事儿,好了不管怎么样,目标还是目标(争取把23种Java设计模式接触一 ...

  5. IOS设计模式第六篇之适配器设计模式

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 那么怎么使用适配器设计模式呢? 这个之前提到的水平滚动的视图像这样: 为了开始实现他,我们创建一个新的继承与UIView的HorizontalScr ...

  6. 适配器设计模式初探(Java实现)

    本篇随笔主要介绍Java实现设配器设计模式. 先来看下待解决的问题: (图片转自http://blog.csdn.net/jason0539) 由上图的情况可知,欧洲壁式插座只有三足插口,如果我们想要 ...

  7. Design Pattern Adaptor 适配器设计模式

    适配器设计模式是为了要使用一个旧的接口,或许这个接口非常难用,或许是和新的更新的接口不兼容,所以须要设计一个适配器类,然后就能够让新旧的接口都统一. 就是这种一个图: watermark/2/text ...

  8. Java程序设计11——GUI设计与事件处理B

    4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...

  9. Java程序设计11——GUI设计与事件处理A

    1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...

随机推荐

  1. Solon 1.6.30 发布,更现代感的应用开发框架

    相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...

  2. Laravel-Auth认证

    1.建立数据表 admins 2.找到config下的auth.php 文件,加入如下代码 <?php return [ /* |-------------------------------- ...

  3. i++ 反编译码

    1.特点: 操作数栈,主要用于保存计算过程中的结果,同时作为集计算过程中变量临时的存储空间. 操作数栈就是JVM执行引擎的一个工作区,当方法执行开始,一个新栈帧也会随之被创建,这个方法的操作数栈是空的 ...

  4. CF1385G口胡

    只能说很神秘??? 首先观察题面,假设给出的第一个序列为 \(a\),第二个序列为 \(b\).对于 \((a_i,b_i)\) 我们连一条边. 得到的是一个 \(n\) 个点 \(n\) 条边的不一 ...

  5. Java Object 类常用方法总结

    总结 public final native Class<?> getClass() //返回此 Object 运行时的类 public native int hashCode() //返 ...

  6. 如何取消以太坊智能合约授权,防止被黑客盗取Token?

    在小狐狸钱包(MetaMask)日常使用中,有一个细节可能很少人注意到,就是无论你登入什么网站,或者需要跟任何项目签订智能合约都要授权的步骤,这其中就会给黑客留下很多空子,特别是将一个Token用智能 ...

  7. 在Windows 10 上安装使用binwalk

    Windows 10 推出的WSL 功能可以协助我们直接使用binwalk 分析Windows 内的文件 文章更新时间:2020年3月11日 一.WSL 准备 1.打开控制面板→程序和功能→启动或关闭 ...

  8. MySQL存储引擎,索引及基本优化策略

    存储引擎 与Oracle, SQL Server这些数据库不同,MySQL提供了多种存储引擎.什么是存储引擎?存储引擎其实就是一套对于数据如何存储,查询,更新,建立索引等接口的实现.不同存储引擎特性有 ...

  9. C#编程基础之字符串操作

    本文来源于复习基础知识的学习笔记.自用的同时希望也能帮到其他童鞋. 什么是编程语言? 计算机可以执行的指令.这些指令成为源代码或者代码 有什么用? 以人们可读可理解的方式编写指令.人们希望计算机执行指 ...

  10. MongoDB 镜像配置方法

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. 配置方法 安装 ...