第六章 窗口系统和用户界面管理系统 山东大学计算机学院.

Slides:



Advertisements
Similar presentations
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
Advertisements

面向对象与设计模式 RD 常见编程范式介绍  并行编程 - Process-orientedProcess-oriented  组件编程 - Component-basedComponent-based  事件驱动 - Service-oriented,Time-drivenService-orientedTime-driven.
參加領域:社會領域 有「深」有「社」有「感覺」 深坑國小教師團隊分享 李岩勳、林淑絹、吳玉瑩、蔡欣樺、王德慈.
刘建勋 湖南科技大学 工作流实例方面的建模理论与实现方法 工作流实例方面的模型与处理方法: 一种商业过程实例的纵切面管理方法探讨 刘建勋 知识处理与网络化制造实验室 计算机科学与工程学院 湖南科技大学.
大学图书馆管理模式的探索与实践 代根兴 北京邮电大学图书馆 北京.林大 海南.海口.
HE Fixed Assets Manage System
动态Web开发技术--JSP.
仁德醫專 第一節 危機與衝突 創意履歷自傳寫作技巧 主講:吳國信 Dec 主講:吳國信.
翰林版國文第三冊第六課 《迢迢牽牛星》 設計者:郭宜幸.
求職防騙宣導及就業服務資源介紹 主講人 : 台南市政府勞工局 科員-黃維國.
国家科学图书馆: 刘丹军、赵雅娟、王晓梅、胡正银等 创想通科技: 阎武鹏 等 2010年 洛阳
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
第1章 Java语言概述.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
笑看畢業後的人生路 港香蘭股份有限公司 品管部 主講人:賴信榮.
如何在求職過程脫穎而出.
基于SSH的web开发 AND 企业级WEB应用开发新技术
Java程序设计 常州信息职业技术学院(CCIT) 软件学院
專題報告製作 胡舉軍 助理教授 資訊管理學系 樹德科技大學
認識自己 面試技巧與專業表達 台糖長榮酒店人力資源部 謝明振.
第一页是课程的标题 Spring入门示例.
MVC Servlet与MVC设计模式.
第一章 JSP概述 学习目标 JSP技术是目前WEB开发技术中应用最广泛的一种.本章对JSP技术、优点、缺点、应用前景作了简要介绍。
J2EE Struts 和Spring 的区别.
JAVA Swing 程序设计 南京邮电大学计算机学院
氣候變遷對南台灣降雨造成之影響 研究背景 結果與討論 研究方法 結論 朱振豪1 、彭康豪1 、莊煌甲1 、邱俊彥2,* 研究目的
浙江省贸促会智慧贸促金桥工程项目 演示介绍
第 18 章 圖形使用者介面.
閱讀深耕天使獎 參加者﹕J 胡庭瑋.
课程整体教学设计 ——《面向对象程序设计基础》
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
第八章 分析與設計階段 – 物件導向設計(OOD)
Ch02 視窗Swing套件 物件導向系統實務.
行動研究就是一種行動性的研究,由行動者來進行研究,而不是由外於行動領域的學者與與科學家來進行,研究的問題也取自行動。
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
JAVA语言程序设计 第9章 图形用户界面 郑 莉.
问题 Jdbc连接数据库 下载数据库的驱动 Sql server 在微软的网站上可以下载 Sqlserver for jdbc driver
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
Struts开发技术.
SWING 2018/11/23.
电子商务技术基础 张宝明.
Swing高级组件 主讲:赖国荣 QQ:
視窗程式設計 10. 組合方塊與對話盒 Chih Hung Wang Reference:
Java程序设计 第15章 创建用户界面.
記事本 物件導向系統實務.
記事本 物件導向系統實務.
Java程序设计 第12章 图形用户界面设计入门.
Ch04 事件處理 物件導向系統實務.
CH04 視窗中元件排排坐 物件導向系統實務.
第11章 系统结构与包模型模型.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十章 基于Swing的图形用户界面设计.
电子商务 王素凤
基于struts和hibernate的网上新 闻发布系统
史忠植 王嘉 董明楷 张海俊 智能信息处理实验室 中国科学院计算技术研究所
Java Server Faces 参考书籍 Java Server Faces 核心编程.
4.5 对话框.
一个实体浏览系统中书签管理模块的设计与实现
第十二章 JFC/Swing 概述  Swing组件  Swing应用程序结构  JComponent类.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
实施前的工作 CJEA : Holen
方格紙上畫正方形.
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
控制UI界面 本讲大纲: 1、使用XML布局文件控制UI界面 2、在代码中控制UI界面 3、使用XML和Java代码混合控制UI界面
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
Java语言程序设计.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
以下資料極度機密 使用手冊 1.謹慎閱讀並熟記在心… 因為你可能只有這次機會 2.分析方式,為本門絕招,盡量外傳!! 3.可反覆練習熟練!
Presentation transcript:

第六章 窗口系统和用户界面管理系统 山东大学计算机学院

主要内容 对交互应用系统实现三个层次上的支持 窗口系统对交互应用系统实现的支持; 软件开发环境对交互应用系统实现的支持; Fall'04 主要内容 对交互应用系统实现三个层次上的支持 窗口系统对交互应用系统实现的支持; 软件开发环境对交互应用系统实现的支持; 用户界面管理系统UIMS

6.3 窗口系统 窗口系统强调为程序员提供硬件设备独立性 窗口系统为单一输入输出设备建立多个抽象设备来实现其资源的共享 Fall'04 6.3 窗口系统 窗口系统强调为程序员提供硬件设备独立性 可以使交互系统的开发变得简单 使交互系统的移植非常方便 窗口系统为单一输入输出设备建立多个抽象设备来实现其资源的共享

6.3.1窗口系统结构 三种不同结构 在各个应用程序内部实现和管理多任务 在操作系统核心集中处理多任务管理 Fall'04 6.3.1窗口系统结构 三种不同结构 在各个应用程序内部实现和管理多任务 移植起来不方便 应用程序处理复杂 在操作系统核心集中处理多任务管理 过分的依赖操作系统 多任务的管理可由独立的管理程序进行管理 应用程序通过调用该管理程序提供的接口来实现对多任务的管理和设备的独立性操作 最容易移植的

客户应用程序 ﹒﹒﹒ 客户 抽象终端 资源管理器 设备驱动程序 服务器 设备 鼠标 窗口1 窗口2 窗口n 键盘 Fall'04 客户应用程序 ﹒﹒﹒ 客户 抽象终端 资源管理器 设备驱动程序 服务器 设备 鼠标 窗口1 窗口2 窗口n 键盘   独立的管理程序的客户/服务器结构

窗口系统由在服务器端运行的三部分程序组成 资源管理器,是整个窗口系统的核心,负责多任务的管理,并通过设备驱动程序来管理外部设备。 设备驱动程序,负责外部设备的驱动,接受输入设备的输入,并将输入数据转换成统一的格式,通过设备驱动程序实现设备的独立性。 抽象终端,负责和客户应用程序的接口,对每个应用程序由窗口管理程序为其分配一个抽象终端。

6.3.2交互事件处理 1)应用程序内部事件处理循环 服务器把用户的输入作为事件送给客户应用程序 Fall'04 6.3.2交互事件处理 1)应用程序内部事件处理循环 服务器把用户的输入作为事件送给客户应用程序 客户应用程序对传给它的所有的事件都做出响应,不同的事件采取不同的处理 早期的基于窗口系统的开发往往采用这种方式

Fall'04 客户应用程序 开始 读输入 设备 服务器 处理输入 退出? 应用程序事件处理循环 结束

交互事件处理 2)事件注册方式 事件处理过程 优点: 事件处理中心负责事件的处理 应用程序登记处理的事件 Fall'04 交互事件处理 2)事件注册方式 事件处理过程 事件处理中心负责事件的处理 应用程序登记处理的事件 事件处理中心接收事件,把事件和控制转向该事件注册的回应过程 处理完后,回应过程把控制返还给事件处理中心 优点: 应用程序不需要设计事件处理循环 事件处理中心处理事件的效率相对比较高 Java事件处理机制示例程序

应用程序 开始 启动通知者 处理事件 读输入 请求回应 退出? 是 否 通知者 事件注册方式处理流程图 发送给正确的回调函数 Fall'04 应用程序 开始 启动通知者 处理事件 读输入 请求回应 退出? 是 否 通知者 事件注册方式处理流程图 发送给正确的回调函数 向通知者注册回调函数 结束

6.3.3交互系统开发软件包 从用户角度讲,图形用户界面WIMP非常重要的特征就是将输入和输出行为与屏幕上的一个独立的对象连接在一起。 Fall'04 6.3.3交互系统开发软件包 从用户角度讲,图形用户界面WIMP非常重要的特征就是将输入和输出行为与屏幕上的一个独立的对象连接在一起。 从程序员的角度讲,即使是窗口系统,输入和输出也是分离的。 为了帮助程序员实现输入和输出融合,需要在窗口系统之上,提供更高层的对交互系统实现的支持——交互系统开发软件包。

交互系统开发软件包 在窗口系统之上,提供更高层的对交互系统实现的支持 提供一组已经定义好的交互对象 使用这些组件编写应用程序 根据需要定制交互对象 使用交互系统开发软件包编程,可以增强界面的一致性

交互系统开发软件包特性 这些组件可以被定义为一类交互对象 这类交互对象可以在一个应用中多次激活 不同的实例可以有微小的区别; Fall'04 交互系统开发软件包特性 这些组件可以被定义为一类交互对象 这类交互对象可以在一个应用中多次激活 不同的实例可以有微小的区别; 复杂的交互对象可以由简单的交互对象构建

Java交互软件开发包 抽象窗口工具包AWT (abstract window toolkits) Fall'04 Java交互软件开发包 抽象窗口工具包AWT (abstract window toolkits) 将交互对象,如按钮、菜单、对话框等映射到Java类Button,Menu,Dialog

Java交互软件开发包-Swing组件 JComponent Fall'04 Java交互软件开发包-Swing组件 JComponent |——AbstractButton——|——JToggleButton——|——JCheckBox |——JColorChooser |——JButton |——JRadioButton |——JFileChooser |——JMenuItem |——JLabel |——JMenu |——JMenuBar |——JRadioButtonMenuItem |——JPanel |——JCheckButtonMenuItem |——JToolBar |——JScrollPane |——JTextCompoment——|——JTextArea |——JOptionPane |——JTextField——JPasswordField |——JScrollPane |——JEditorPane——JTextPane ......... .........

6.3.4交互框架 桌面方式

下拉式菜单主要为用户提供相应的交互命令,一般在下拉式菜单下面还有一行图标表示的命令选择项,这些命令选择项是为了使用户快速选择命令而从下拉式菜单命令集合中选择的常用的命令,交互过程中经常用到的一些状态修改也会出现在菜单和工具栏中。

工具栏有固定方式,也有浮动方式 固定方式一般在框架的顶部位置,这种情况适应于工具栏中的命令较少,而且对屏幕空间不渴求的应用,像一般的信息管理信息系统的应用,浮动框可以贴合在框架的任何一边,即可以是一行,也可以是一列,或者是一个小的矩形网格面板,这种工具栏可以根据应用的要求设置多个,也可以根据实际情况由用户根据实际的需要打开和关闭 浮动的工具栏大部分应用在命令状态很多交互设计相对复杂的系统中,如图形图象像编辑设计软件和字处理软件,还有软件开发设计工具等。

菜单按着模块组织成一个树性结构,树形菜单节点可以根据需要进行部分展开,这可以使得菜单区域即不受菜单空间的限制,又可以当菜单的层次比较深时不用每次像下拉式菜单那样逐层的从最高层到页节点,提高了交互命令选择的效率。

状态栏,一般用于显示一些常用的静态信息和动态信息,状态栏一般分成几个部分,用于不同信息的显示,这种信息主要给用户一些对当前所处的环境的提示,如当前用户,时间、在线人数等等,当前正在进行的交互任务等等,当然系统开发者的某些信息一般也显示在这里,包括开发单位、联系电话和版本号等,这个区域还有一个重要的应用就是用于显示需要较长时间才能完成的进度提示。

工作空间 多个窗口可以并列排列在框架中 标签(table)页

交互框架 浏览器方式

Fall'04 6.3.5MVC模型及Structs结构 MVC模型 模型 视图 控制 用户 显示 键盘 鼠标 MVC模型

MVC模型 视图 (View) 模型 (Model) View代表用户交互界面 一个应用可能有很多不同的视图 Fall'04 MVC模型 视图 (View) View代表用户交互界面 一个应用可能有很多不同的视图 对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求 模型 (Model) Model负责业务流程/状态的处理以及业务规则的制定 是MVC最主要的核心,模型包含完成任务所需要的所有的行为和数据

MVC模型 控制 (Controller) 控制器处理用户的输入 控制器在需要时还负责创建其它的界面和控制器 Fall'04 MVC模型 控制 (Controller) 控制器处理用户的输入 控制器在需要时还负责创建其它的界面和控制器 控制器决定哪些界面和模型组件在某个给定的时刻应该是活动的

MVC模型 优点 不足 可以为一个模型在运行时建立和使用多个视图 视图与控制器的可接插性 模型的可移植性 系统结构和实现的复杂性 Fall'04 MVC模型 优点 可以为一个模型在运行时建立和使用多个视图 视图与控制器的可接插性 模型的可移植性 不足 系统结构和实现的复杂性 视图与控制器间的连接过于紧密 视图对模型数据的低效率访问

Struts,MVC 的一种实现 Struts 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC设计。 Fall'04 Struts,MVC 的一种实现 Struts 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC设计。

视图(View)――JSP页面和表示组件 基于Struts的应用程序中的视图部分通常使用JSP技术来构建。 每一视图都是采用了定制标签库的JSP页面,这些定制标签库由Struts Framework提供。 全部面板元素都是用定制标签编码的,所以这些页面能够很方便地同控制器进行交互,每个面板都通过映射JSP到servlet的请求这一方式指向控制器的特定入口点。

控制器(Controller)――ActionServlet和ActionMapping 应用程序的控制器从客户端接收请求,决定执行什么业务逻辑,然后将产生下一步用户界面的责任委派给一个适当的视图组件。 在Struts中,控制器的基本组件是ActionServlet类的servlet。这个servlet通过定义一组映射(由Java接口ActionMapping描述)来配置。 每个映射定义一个与所请求的URI相匹配的路径和一个 Action类(一个实现Action接口的类)完整的类名,这个类负责执行预期的逻辑,然后将控制分派给适当的视图组件来创建响应。

模型(model)――系统状态和商业逻辑JavaBeans 在struts中,模型分为两个部分:系统的内部状态、可以改变状态的操作(事务逻辑)。 内部状态通常由一组ActinForm JavaBean表示。 根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时从某个数据库获得数据。

Struts的基本架构和实现实例 用户通过一个登录页面输入用户名和密码,系统对所输入的信息进行有效性验证后,从数据库读出其原始密码并与用户输入的密码进行比对。如果两者相符则转入成功页面;否则提示用户出错,并要求其重新输入。 实例主要有以下几个文件:Login.jsp,LoginAction.java,struts-config.xml 以及LoginActionForm.java。 Login.jsp----View部分; LoginAction.java 与 struts-config.xml------Controller的角色; LoginActionForm.java ------是Model一个组成部分,其作用是保存用户输入的信息;访问数据库并取得数据也是Model必须完成的任务,它由LoginBO.java和LoginDAO.java完成。

6.4UIMS(用户界面管理系统) 一个支持交互系统开发的UIMS的概念结构 该结构把应用程序的语义与表现分开 Fall'04 6.4UIMS(用户界面管理系统) 一个支持交互系统开发的UIMS的概念结构 该结构把应用程序的语义与表现分开 保留应用程序和表示形式之间的内在关系 支持运行的交互系统的管理、实现和评估的技术

Fall'04 UIMS的表示方法 表现层表示方法 对话控制的表示方法 应用层的表示方法 应用程序 应用层 对话控制 表现层 最终用户

表现层表示方法 主要涉及用户输入输出信息的处理 如何处理和表示图形的输入输出 如何适应多媒体的需要 如何适应智能人机界面规格说明的需要 Fall'04 表现层表示方法 主要涉及用户输入输出信息的处理 如何处理和表示图形的输入输出 如何适应多媒体的需要 如何适应智能人机界面规格说明的需要

对话控制的表示方法 基于语言的表示方法 基于图形的表示方法 基于应用语义过程的表示方法 菜单网络,可以支持菜单的层次或网络结构 状态转换网络 Fall'04 对话控制的表示方法 基于语言的表示方法 菜单网络,可以支持菜单的层次或网络结构 状态转换网络 上下文无关文法 事件语言 面向对象语言 基于图形的表示方法 用户使用鼠标器直接将对象放到屏幕上来定义界面 基于应用语义过程的表示方法

应用层的表示方法 包含的内容 与用户和人机界面有关的应用数据结构的说明 与用户和人机界面有关的子程序的说明 列举应用程序对用户的限制 Fall'04 应用层的表示方法 包含的内容 与用户和人机界面有关的应用数据结构的说明 与用户和人机界面有关的子程序的说明 列举应用程序对用户的限制 使人机界面排除许多可能引起语义错误的操作,避免对应用程序的破坏

应用层的表示方法 分类方法 对象-算子表示 基于关系和一阶逻辑的表示 对象对应于应用程序的数据结构 算子对应于人机界面调用的应用子程序 Fall'04 应用层的表示方法 分类方法 对象-算子表示 对象对应于应用程序的数据结构 算子对应于人机界面调用的应用子程序 基于关系和一阶逻辑的表示 关系用来表示应用程序中的数据结构 而一阶逻辑模型用来表示应用子程序

UIMS实现 系统主要由模型、界面管理器和业务处理接口三部分组成 UIMS系统的组成

模型用于定义各种界面显示元素以及各元素的关系; 界面管理器由解析器、布局管理器和事件处理器组成 其中解析器由模型解析器和平台解析器组成,模型解析器负责将基于XML的界面描述解析成一个个的运行时模型对象, 平台解析器将运行时模块解析成具体的界面组件,解析器和布局管理器共同确定了界面上组件的具体表现; 事件处理器负责处理用户事件调用业务处理接口处理相关的业务。

UIMS模型的结构图 整个模型由model、environment、mainFrame三部分构成。Model是整个模型的核心,用于描述系统的资源以及界面元素;environment描述了系统运行时所依赖的环境;main frame 为用户的操作区。

本章习题 用 Java语言实现事件处理中心管理程序。 用 Java语言实现面板输入界面的UIMS系统管理程序。 请用GOMS模型给出一个拼图游戏的任务描述,要求用户能从给定的几种图形随机产生的需要拼接的图案 请用状态转换图描述一个绘制折线的对话过程,并按照状态设计模式给出具体实现过程。