您的位置:首页 > 产品设计 > UI/UE

core java 8~9(GUI & AWT事件处理机制)

2014-12-06 11:50 369 查看
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接口:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: