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. [USACO20FEB]Equilateral Triangles P 题解

    优雅的暴力. 设三个点为 \((i,j,k)\),则有 \(6\) 个未知数即 \(x_i,x_j,x_k,y_i,y_j,y_k\).又因为有 \(2\) 条关于这 \(6\) 个未知数的方程 \( ...

  2. SQL从零到迅速精通【表连接查询】

    看了这些表连接,个人感觉'左外连接'.'右外连接'和'全外连接'应用好就可以了. 1.外连接 (1)LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录. 在student ...

  3. 【行业Tip】三电是什么

    电动汽车的"三电"是指:电池.电机.电控.

  4. 小程序授权登录并 laravel7(laravel8) token 应用

    参考博客: https://blog.csdn.net/qq_42839386/article/details/118279530 1:composer 下载 composer require fir ...

  5. Redis常用命令代码实例集合

    //连接本地的 Redis 服务 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('12345 ...

  6. laravel 框架简易增删改查

    参看网址:http://www.yan.com/mou/add 图书增加HTML页面 //图书增加路由 Route::get('mou/add','MouController@store'); //控 ...

  7. Ajax结合THymeleaf使用

    <script type="text/javascript"> //通过$("标签"),也可以使用id的点击事件 $("a"). ...

  8. tensorflow源码解析系列文章索引

    文章索引 framework解析 resource allocator tensor op node kernel graph device function shape_inference 拾遗 c ...

  9. java方法学习

    java方法学习 方法概念 什么是方法 方法就是完成某些事情的过程,如:实现两个数相加,用方法add(数值1,数值2). 1.System.out.print(),System是系统的一个类,out是 ...

  10. (acwing蓝桥杯c++AB组)1.1 递归

    (acwing蓝桥杯c++AB组)1.课程介绍+递归 文章目录 (acwing蓝桥杯c++AB组)1.课程介绍+递归 课程介绍 第一讲 递归与递推 递归 引入 递归的底层调用顺序 例题与练习 课程介绍 ...