MODULE 8 GUIs
--------------------------------
GUI中的包:
java.awt.*;
javax.swing.*;
java.awt.event.*;

要求:
1)了解GUI的开发流程;
2)掌握常用的布局管理器

开发GUI图形界面的步骤
-------------------------------
1.选择容器
1)Frame容器
有缩小/最大化/关闭等按钮,顶层容器
2)Dialog对话框
通常依赖于容器,不单独出现
3)Applet 依赖于浏览器的支持,已淘汰
4)Panel 轻量级小容器
没有缩小/最大化/关闭等按钮,通常一个大的容器需要设置多种排列风格时,将大容器切割成多个小容器,每个小容器添加自己独有的风格。没有滚动条
5)ScrollPane 带有滚动条的小容器

2.给容器设置布局管理器
布局管理器决定了容器组件的排列风格
1)setLayout(布局管理器) 设置布局管理器
2)可以通过组件的setLocation() setBounds()等方法设置组件在容器当中的位置,大小,以及和容器的边界等
3)所有容器都有默认的布局管理器
Window 默认为BorderLayout,Frame容器与之相同
Panel 默认为FlowLayout

3.往容器中添加组件
1)创建组件对象
Button b=new Button("Add");
2)向容器中添加组件
add(b);

4.创建事件监听器
给每个组件添加相应的时间处理代码
westBtn.addActionListener(new ActionListener(){
public void Performed(ActionEvent e){
centerArea.setText(centerArea.getText()+westTxt.getText()+"\n");
westTxt.setText("");
}
});

创建容器的两种方式
1)将JFrame作为成员变量
2)可以继承JFrame

常见的布局管理器
------------------------
1.flowlayout 流式布局管理
组件按行排列,一行排不下或窗口改变会自动换行排列

2.BorderLayout
将容器分为五大区域:
BorderLayout.CENTER
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.SOUTH
BorderLayout.NORTH
每个区域只能放一个组件,且该组件充满整个区域
若改变窗口大小,只有CENTER区域会跟随改变,其他区域不变

练习:BorderLayoutEx.java

3.GridLayout 网格布局管理器
将容器划分为若干行若干列大小相同的网格,每个网格只允许放一个组件,且该组件充满网格
对组件调整大小无意义

4.CardLayout 卡片状布局管理器
设置多个卡片,每个卡片只能放一个组件,且该组件充满整个区域

JFC
提供了通用的类库开发图形界面,操作系统无关

组成:AWT Java2D Accessebility Drag and Drop, Swing

MODULE 9 AWT事件处理机制
--------------------------------
按钮 点击 产生响应
事件源(触发)点击事件(给)事件监听器===> 执行响应代码

三要素:
Event Source:事件源
操作的组件,如按钮等,会产生事件
Event Object:事件对象
组件身上触发的事件对象,如鼠标单击,将动作包装成对象
Event Listener:事件监听器
负责对不同事件源发来的事件进行响应

例:

分析:
1)事件源要维护一个监听器列表,产生的事件传递个这些监听器
2)事件对象身上要携带有事件源的信息
3)事件监听器要知道事件源,并根据不同的事件源做不同的响应

情绪模型
----------------
女孩 产生 情绪事件 发送给 男孩子们

Girl 事件源
1)负责产生情绪事件happy()/sad(),把情绪传递给所有对她感兴趣的男孩子
2)要维护一个男孩子列表,记录所有对她感兴趣的男孩
3)提供相应的方法允许注册监听器或删除监听器

EmotionEvent 事件对象
情绪事件要携带有Girl的信息

Boy 监听器
对不同的Girl发来的情绪事件作出不同的反应

适配器Adapter
-----------------------------------
设计原因:
采用实现事件监听器接口的 方式编写事件处理代码时 ,必须对该接口中的所有事件提出实现(很多事件不会用到)。考虑简化该方式:适配器类

原有的:MouseListener接口:

core java 8~9(GUI & AWT事件处理机制)的更多相关文章

  1. Java基础学习 -- GUI之 事件处理基础

    事件处理可以简单地这么理解,当有一个事件产生,程序要根据这个事件做出响应.比如,我们做了一个可以通过按钮改变背景颜色的窗口,当我们点击按钮时便产生了一个事件,程序会根据这个事件来做出响应,也就是去改变 ...

  2. 编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示

    返回本章节 返回作业目录 需求说明: 使用Swing事件处理机制实现用户登录和英雄信息显示 实现思路: 创建LoginView类,该类用于显示登录界面,为登录按钮添加ActionListener事件, ...

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

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

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

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

  5. java 事件处理机制:按下上下左右键控制小球的运动

    /** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...

  6. Java Swing事件处理机制

    Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: ...

  7. java GUI之事件处理

    常见事件及相应事件源类型 事件源 用户操作 事件 JButton 点击按钮 ActionEvent JTextField 在文本域按回车键 ActionEvent JCheckBox 点击复选框 Ac ...

  8. 从零开始理解JAVA事件处理机制(3)

    我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...

  9. JAVA委托事件处理机制

    1)事件:用户对程序的某一种功能性操作. Java中的事件主要有两种: 1.组件类事件 componentEvent.ContainerEvent.WindowEvent.FocusEvent.Pai ...

随机推荐

  1. 将Excel中数据导入数据库(一)

    在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...

  2. 解决wamp mysql数据库出现乱码的问题。

    一般的乱码情况: 如果在控制台上出现這样的乱码,一般在phpmysqladmin上也会出现乱码,因为他们都一样 一个在控制台出现,一个在页面出现. 首先在mysql.exe上输出 mysql>S ...

  3. PAT1099

    /*innner order traverse for BST will be ordered *1.sort the value in buffer *2.inner traverse the BS ...

  4. PHP 生成excel|好用强大的php excel类库

    做Magento的订单导出Excel功能,找了这个php的excel类 :PHPExcel. PHPExcel是强大的 MS Office Excel 文档生成类库,基于Microsoft's Ope ...

  5. 织梦DedeCMS列表摘要 description 长度控制方法

    [field:description /]标签如何限制字数? [field:description function='cn_substr(@me,80)'/] DedeCMS 里的所有标记都支持这样 ...

  6. 【MVC】关于Action返回结果类型的事儿(上)

    一. ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1. ...

  7. Track files and folders manipulation in Windows

    The scenario is about Business Secret and our client do worry about data leakage. They want to know ...

  8. javascript 详解数组

      概念 数组创建 数组读写 数组 VS. 一般对象 相同点 不同点 稀疏数组 数组的length属性 元素增删 数组迭代 二维数组 数组方法 Array.prototype.join Array.p ...

  9. 让chrome打开手机网页

    在chrome快捷方式上点右键: "C:\Program Files\Google\Chrome\Application\chrome.exe" -user-agent=" ...

  10. C++利用注册表添加桌面右键新建菜单

    对于程序员来说,新建一个cpp文件是再频繁不过的事情了. 为了方便,我们习惯在桌面右键新建文件,而不是新建一个文本文档,然后修改后缀名. 百度谷歌查询了一下,终于知道如何添加注册表. 手痒,抽出时间用 ...