Presentation is loading. Please wait.

Presentation is loading. Please wait.

四川机电职业技术学院 http: // 6.1 主控界面设计、编程 信息工程系 向模军 13684285460 156638267 Tel: QQ:

Similar presentations


Presentation on theme: "四川机电职业技术学院 http: // 6.1 主控界面设计、编程 信息工程系 向模军 13684285460 156638267 Tel: QQ:"— Presentation transcript:

1 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 信息工程系 向模军 13684285460 xmj.cn@163.com 156638267 Tel: Email: QQ:

2 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 2/18 1 任务引入 聊天主控界面主要用于聊天用户管理,和完成系统相关信息的 配置。主要的界面交互功能如下: 1. 可通过鼠标右键弹出式菜单添加、删除好友。 2. 通过不同的颜色反映好友 “ 在线 ” , “ 离线 ” , “ 呼叫 ”3 种状态。 3. 当双击好友时,设置好友的颜色表示 “ 聊天 ” 状态。

3 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 3/18 2 任务讨论 构造一个可视化的 “ 好友类 ” 表示 “ 好友 ” ,该类提供相应的方法 可根据 “ 好友 ” 状态更改 “ 好友类 ” 的文本属性(如:文本颜色 等);同时 “ 好友类 ” 提供鼠标事件,响应 “ 添加、删除 ” 好友 操作及打开聊天界面操作。

4 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 4/18 3 图形用户界面 用户界面:用户与计算机进行交互的渠道,人 ( 眼睛和手指 …) 和计 算机(硬件和软件)的通信,协同完成一定任务。与计算机输入 / 输出过程都相关。 面向对象的图形用户界面:基于 “ 面向对象 ” 的思想互相交换信息, 即尽可能在屏幕上用形象的图标和窗口等来代表有用的资源和可启 用的对象。图形界面对象代表特定的软件、命令、过程、资源、提 示信息等。图形界面编程的主要特征: 图形界面对象及其框架(图形界面对象之间的包含关系) 图形界面对象的布局(图形界面对象之间的位置关系) 图形界面对象上的事件响应(图形界面对象上的动作)

5 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 5/18 3 使用 AWT(Abstract Window Toolkit) 组件 java.awt 及相关包中包含了一个完整的类集以支持 GUI 程序的设 计,其中的类及相互关系可以用下图来描述(重量级构件):

6 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 6/18 3 Component 类 java.awt 包中最核心的类就是 Component 类,它是构成 Java 图形用 户界面的基础,大部分组件都是由该类派生出来的。

7 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 7/18 3 Container 类 Container 类是由 Component 类派生出来的一种特殊类,用来表示各 种 GUI 组件的容器,其主要功能包括: 组件的管理:方法 add() 可以向其中添加一个组件, remove() 删除 其中的一个组件, … 布局管理:每个 Container 类都和一个布局管理器相联,以确定其 中组件的布局。 Container 类可以通过 setLayout() 方法设置某种布局方 式。 常见的 Container 类有: Frame, Panel, Applet 等。

8 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 8/18 3 菜单类 菜单类也是一种重要的图形组件,只不过菜单类并不是由一般的 Component 类派生的,而是从 MenuComponent 类继承得到的。

9 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 9/18 3 布局管理器类 Java 中提供了各种布局管理器类来管理各种组件在容器中的放 置状态,这些类都是实现了 LayoutManager 接口的。标准的布局管 理器类有: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout 还可以通过实现 LayoutManager 接口来定义自己的布局管理器。

10 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 10/18 3 包含组件的组件 —— 组件容器( Container ) 一个 Java 的图形用户界面的最基本组成部分就是组件( Component ),组件 是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,比如 Button, Checkbox, Choice, Label, List 等。 组件不能独立地显示出来,必须将组件放在特定的对象中才能显示出来,这 就是包含组件的组件 ——Container (容器)。容器 Container 是 Component 的子 类,它本身也是一个组件,具有组件所有的性质。另外,它还具有容纳其他组件 和容器的功能。

11 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 11/18 3 外观的管理与控制 java.awt 类包中包含五种布局管理器: FlowLayout : Panel 和 Applet 的缺省布局管理器 BorderLayout : Window 、 Dialog 和 Frame 的缺省布局管理器 GridLayout CardLayout GridBagLayout

12 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 12/18 3 事件与事件处理 所谓事件,就是发生在用户界面上的用户交互行为而产生的一种效果,如 鼠标的各种动作、键盘的操作以及发生在组件上的各种动作,因此事件一 般也分为三种类型:键盘事件、鼠标事件以及组件的动作事件(对鼠标或 键盘事件在一定程度上进行了封装)。 一般情况下,组件(事件源)都不处理自己的事件,而是将事件处理 委托给外部的处理实体(监听器),这种事件处理模型称为事件的授权 处理模型。不同的事件,可以交由不同类型的监听器去处理。所有的组 件都从 Component 类中继承了将事件处理授权给监听器的方法: addXXXListener(ListenerType listener) removeXXXListener(ListenerType listener)

13 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 13/18 3 继承 Component 用户可以从 Component 中继承来创建自己的轻量级组件,此时,在新的组件中 一般要实现(重写)以下方法: 1. 构造方法:如果组件要响应事件(如鼠标按键),构造方法中必须调用 enableEvents() 方法; 2. 更改组件状态的方法:比如 setText() 方法等,在这些方法中,如果状态的变化引 起了组件外观的变化,则需要调用 repaint() 方法,如果组件的尺寸发生了变化,则 在调用 repaint() 方法前还需要调用 invalidate() 方法; 3. 组件的绘制方法: paint() ,还包括组件最佳尺寸 getPreferredSize() 和最小尺寸 getMinimumSize() 方法等。 4. 组件的事件监听器注册方法和取消注册方法: addActionListener() 和 removeActionListener() ,在这两个方法中要调用 AWTEventMulticaster 类中的方 法来实现; 5. contains() 方法:如果组件只响应一定区域中发生的事件; 6. 组件状态改变及事件产生方法: processXXXX() ,如 processMouseEvent()

14 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 14/18 4 任务实施 在 JBuilder 中新建项目。在项目中建立 3 个类。 1. 建立 UsePanel 类( “ 好友 ” 类),负责表示好友的状态 ( 离线, 在线,呼叫状态 ) ,并负责添加、删除好友。处于呼叫状态 的 UsePanel 对象,响应鼠标双击事件切换到聊天状态。 2. 建立 FrameMain 类,负责管理用户列表和系统配置信息 ( 系 统配置信息保存到一个配置文件中 ) 。 3. 建立 App 类,负责启动程序。

15 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 15/18 5 任务点评 由于 UsePanel 类中要显示多种信息,所以 UsePanel 类应继 承 JPanel 类。 显示 UsePanel 对象的容器类的布局类型应保障 n 行 1 列的格 式。

16 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 16/18 6 试一试 练一练 根据指定的行列数,初始化一个 “ 扫雷 ” 游戏界面。

17 四川机电职业技术学院 http: // www.scemi.com 6.1 主控界面设计、编程 17/18 7 课外拓展 收集资料,详细了解 Java GUI 编程中的事件处理机制。

18 四川机电职业技术学院 http: // www.scemi.com


Download ppt "四川机电职业技术学院 http: // 6.1 主控界面设计、编程 信息工程系 向模军 13684285460 156638267 Tel: QQ:"

Similar presentations


Ads by Google