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. 【小错误】起归档是遇到ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

    今天在起归档时遇到ORA-00265: instance recovery required, cannot set ARCHIVELOG mode的错误 从错误我们能够看到是由于datafile,c ...

  2. SQL Access Advisor

    1.概述: provides advice on improving the performance of a database through partitioning, materialized ...

  3. EXE中释放文件

    今天有个朋友问到VC能否释放多个EXE.DLL或WAV等文件,我便做了个实例给他. (注意:以下释放资源代码是不受文件扩展名所限制的,你可以释放更多类型文件) 下面是我写了个很方面的函数给大家用! 1 ...

  4. MongoDB 2: 安装和使用

    导读:上篇博客中简单介绍了MongoDB,本篇文章主要是介绍Mongo的安装和使用(环境为win8).(PS:这是一篇没什么技术含量的文章,仅是个人的笔记式文档)下一篇博客,将介绍Mongo使用过程中 ...

  5. 百度编辑器Ueditor自动换行,添加<p>的问题

    百度编辑器Ueditor其实蛮好用的,后来使用了一段时间发现,每次打开后又保存,发现都会往内容的前后都增加一个空白的<p></p>.刚开始以后是百度编辑器的问题,找了很长时间也 ...

  6. Qt Meta Object System-元对象系统

    研一的时候开始使用Qt,感觉用Qt开发图形界面比MFC的一套框架来方便的多.后来由于项目的需要,也没有再接触Qt了.现在要重新拾起来,于是要从基础学起. Now,开始学习Qt事件处理机制. 元对象系统 ...

  7. 有联系的jQuery选择器

    1.包含关系 2.相邻关系 //JavaScript$(document).ready(function () { $(".studentName + div").hide(); ...

  8. Mysql group by 排序问题

    类如 有一个 帖子的回复表,posts( id , tid , subject , message , dateline ) , id 为 自动增长字段, tid为该回复的主题帖子的id(外键关联), ...

  9. 理解DOM中的事件流

    浏览器发展到第四代时(IE4和Netscape Communicator 4),浏览器团队遇到一个很有意思的问题:页面的哪一部分会拥有特定的事件?想象下在一张纸上有一组同心圆,如果你把手指放在圆心上, ...

  10. Spring MVC防御CSRF、XSS和SQL注入攻击

    参考: http://www.myhack58.com/Article/html/3/7/2012/36142_6.htm http://blog.csdn.net/jasontome/article ...