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. 七牛云cdn加速

    https://developer.qiniu.com/fusion/1228/fusion-quick-start https://blog.csdn.net/qq_27292113/article ...

  2. think php 公共目录common.php json封装

    <?php function getJsonData($code,$massage,$data){ $result=[ 'code'=>$code, 'massage'=>$mass ...

  3. Django基础三之路由、视图、模板

    Django基础三之路由.视图.模板 目录 Django基础三之路由.视图.模板 1. Django 请求和返回周期 1.1 路由层之路由匹配 1.2 有名分组 1.3 无名分组 2. 反射解析 3. ...

  4. HTTP 之 Content-Type

    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式.什么编码读取这个文件,这就是经常看到一些Asp网页点击 ...

  5. [SniperOJ](web) Inject again 注入 过滤左右括号 order by

    0x00 题目概述 题目地址:http://web2.sniperoj.cn:10004/ 拿到题,尝试注入,发现有过滤. 进行fuzz,发现过滤了 左右括号,分号,等号 ,还有一些查询关键字 . 在 ...

  6. 2022IDEA配置启动lilishop的swagger展示

    目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...

  7. 面试官:Zookeeper是什么,它有什么特性与使用场景?

    哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 作为一名Java程序员,Zook ...

  8. 从零开始,开发一个 Web Office 套件(13):删除、替换已选中文字

    这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...

  9. protocol 协议语言介绍

    Protocol Buffer是Google提供的一种数据序列化协议,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储 ...

  10. mysql覆盖索引与回表

    mysql覆盖索引与回表 Harri2012关注 62019.07.28 11:14:15字数 1,292阅读 77,322 select id,name where name='shenjian' ...