core java 8~9(GUI & AWT事件处理机制)
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事件处理机制)的更多相关文章
- Java基础学习 -- GUI之 事件处理基础
事件处理可以简单地这么理解,当有一个事件产生,程序要根据这个事件做出响应.比如,我们做了一个可以通过按钮改变背景颜色的窗口,当我们点击按钮时便产生了一个事件,程序会根据这个事件来做出响应,也就是去改变 ...
- 编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示
返回本章节 返回作业目录 需求说明: 使用Swing事件处理机制实现用户登录和英雄信息显示 实现思路: 创建LoginView类,该类用于显示登录界面,为登录按钮添加ActionListener事件, ...
- Java程序设计11——GUI设计与事件处理B
4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- java 事件处理机制:按下上下左右键控制小球的运动
/** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...
- Java Swing事件处理机制
Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: ...
- java GUI之事件处理
常见事件及相应事件源类型 事件源 用户操作 事件 JButton 点击按钮 ActionEvent JTextField 在文本域按回车键 ActionEvent JCheckBox 点击复选框 Ac ...
- 从零开始理解JAVA事件处理机制(3)
我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...
- JAVA委托事件处理机制
1)事件:用户对程序的某一种功能性操作. Java中的事件主要有两种: 1.组件类事件 componentEvent.ContainerEvent.WindowEvent.FocusEvent.Pai ...
随机推荐
- 慕课网-安卓工程师初养成-4-1 Java条件语句之 if
来源:http://www.imooc.com/code/1353 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这 ...
- AX2012全新的批处理方式
AX2009 的批处理操作我们是通过RunBaseBatch framework,我们所要做的事情就是继承RunBaseBatch class,实现里面该实现的方法来执行批处理. AX2012 的批处 ...
- js 打开PDF
用插件打开PDF的一个超连接 但是谷歌了很久 ,发现了一个很好的方法 就是借google 来打开一个PDF ,而不下载PDF: _yourID.setAttribute('onclick'," ...
- .net orm比较之dapper和Entity Framework6的简单测试比较
.net orm比较之dapper和Entity Framework6的简单测试比较
- Mysql group by 排序问题
类如 有一个 帖子的回复表,posts( id , tid , subject , message , dateline ) , id 为 自动增长字段, tid为该回复的主题帖子的id(外键关联), ...
- sessionStorage html5客户端本地存储之sessionStorage及storage事件
可以看一下<JavaScript本地存储实践(html5的localStorage和ie的userData)>sessionStorage和上文中提到的localStorage非常相识,方 ...
- storm启动分析
一个topology的启动包括了三个步骤 1)创建TopologyBuilder,设置输入源,输出源 2)获取config 3)提交topology(这里不考虑LocalCluster本地模式) 以s ...
- javaSE27天学习目录
第一阶段(java基础知识) 计算机基础知识 Java开发环境的搭建和应用 机制转换 有符号数据表示法(原码.反码.补码) Java语句基础(关键字.标识符.注释.常量.变量.数据类型.运算符) ...
- VS2013添加NuGet的方法
1.工具->扩展和更新->联机 2.右上角搜索框搜索NuGet,选择NuGet Package Manager for Visual Studio 2013,安装后重启VS 下面通过添加N ...
- 2014第五届蓝桥杯试题C/C++程序设计B组——切面条
题目描述:标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间切一刀 ...