欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    【教学课件】第7章图形用户界面的实现.ppt

    • 资源ID:69866768       资源大小:765.50KB        全文页数:39页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【教学课件】第7章图形用户界面的实现.ppt

    第7章 图形用户界面的实现图形界面作为用户与程序交互的窗口,是软件开发中一项非常重要的工作。本章将会详细介绍如何使用Java语言编写图形界面,利用Java丰富的图形组件创建交互性更好的用户界面。7.1 图形用户界面概述无论采取何种语言、工具实现图形界面,其原理都基本相似。简单而言,图形界面就是用户界面元素的有机合成。这些元素不仅在外观上相互关联,在内在上也具有逻辑关系,通过相互作用、消息传递,完成用户操作的响应。设计和实现图形用户界面时,主要包含两项内容。(1)创建图形界面中需要的元素,进行相应的布局。(2)定义界面元素对用户交互事件的响应以及对事件的处理。7.2 Swing与AWTAWT、Swing作为图形界面的开发包同时存在于同一标准库中,那么二者之间的区别在哪里呢?创建图形界面时如何取舍?本节详细讲述Swing与AWT的关系,以及如何取舍Swing与AWT。7.2.1 Swing与AWT之间的关系Swing诞生之前,Java中用来进行图形用户界面开发的工具包为AWT。AWT是“Abstract Window Toolkit”的缩写,又称为“抽象窗体工具包”。AWT是随早期Java一起发布的GUI工具包,是所有Java版本中都包含的基本GUI工具包,其中不仅提供了基本的控件,并且还提供了丰富的事件处理接口。Swing是继AWT之后Sun推出的又一款GUI工具包。Swing建立在AWT 1.1基础上的,也就是说,AWT是Swing大厦的基石。7.2.2 关于Swing与AWT控件的混用由于AWT中提供的控件,均依赖本地系统实现,而Swing控件属于轻量级控件,是由纯Java编写的,使用基本图形元素直接在屏幕上绘制,因此在搭建界面时,如果将二者同时使用,就有可能会出现遮挡的现象。7.3 事 件 处 理对于GUI的应用程序来说,事件处理是必不可少的,用户与程序之间的交互都是通过事件处理来实现的。当用户与GUI交互时,无论是单击鼠标,还是按下键盘,都会触发相应的事件。事件将通知应用程序发生的情况,接着应用程序会根据不同的事件作出相应的回应。所以在整个过程中涉及到两个对象:事件源与事件监听器。事件源是指触发事件的控件,如按钮、窗体、列表、表格等。不同控件在不同情况下将触发不同的事件,关于事件的信息被封装在事件对象中。7.3.1 事件的层次结构前面已经介绍,虽然现在在开发中使用的都是Swing控件,但事件处理模型还是基于AWT 1.1的。本小节将介绍AWT 1.1中的事件层次结构,所有的事件类都继承自EventObject类,在该类中定义了一个非常有用的getSource()方法,该方法的功能为从事件对象获取触发事件的事件源,为编写事件处理的代码提供方便,该方法的接口如下。7.3.2 窗体事件大部分GUI应用程序都需要使用窗体来作为最外层的容器,可以说窗体是组建GUI应用程序的基础,应用中需要使用的其他控件都是直接或间接放在窗体中的。如果窗体关闭时需要执行自定义的代码,则应该使用事件处理来实现,本小节将结合事件处理模型介绍如何开发处理窗体事件的代码,包括关闭窗体、窗体失去焦点、获得焦点、最小化等情况。7.3.3 鼠标事件当用户在GUI界面上单击鼠标、拖动鼠标、转动鼠标滚轮时,都会触发相应的鼠标事件。对于鼠标事件,Java提供了MouseWheelEvent类和MouseEvent类表示相应的事件。MouseWheelEvent事件主要用来处理与鼠标滚轮转动相关的动作,如鼠标滚轮转动的方向和单位数。而MouseEvent事件则反映了事件发生时鼠标的按键、水平x坐标、垂直y坐标以及关联鼠标的单击次数。7.3.4 事件适配器适配器是指实现了一个或多个监听接口的类,适配器类为所有的事件处理方法都提供了空实现。实际开发中在编写监听器代码时不再直接实现监听接口,而是继承适配器类并重写需要的事件处理方法,这样就避免了编写大量不必要代码的情况,7.4 创建图形用户界面通过上面的介绍,我们已经对图形用户界面编程有了初步的认识。从本节开始将系统地介绍如何开发图形用户界面,尤其是讲述需要用到的基本知识点。7.4.1 窗体在前面介绍窗体事件中曾经讲述过,应用中需要使用的其他控件都是直接或间接放在窗体中的,窗体是组建GUI应用程序的基础。在Swing中,可以利用JFrame类创建包含标题、边框以及最大化、最小化、关闭按扭的窗口。JFrame类构造器创建的窗体是不可见的,需要在代码中手工指定才可以在屏幕上看见窗体。这样做的目的是因为很多对窗体的特殊操作都需要在窗体被设置为可见之前完成,否则将会在运行时抛出异常。同时,JFrame类构造器创建的窗体默认的尺寸为00像素,默认的位置坐标为0,0。因此在开发中要注意,仅仅将窗体设置为可见的还是不能看到窗体,还需要显式地指定窗体的具体尺寸。7.4.2 面板面板是常用的非顶层容器之一。可以将其他控件放在面板中以组织一个子界面。在Swing中,可以使用javax.swing.JPane类创建面板。JPanel类继承自javax.swing.JComponent类。在面板中可以使用不同的布局,按照不同的方式摆放面板中的控件。如果创建具有双缓冲和流布局的JPanel对象,可以使用不带任何参数的构造函数,如下所示:7.4.3 标签不管开发什么样的GUI应用程序,都需要在界面上给用户一些提示性的信息,这时就需要使用标签控件。恰当地使用标签可以使GUI的交互界面更友好,使用户在使用的过程中有更好的体验,本节将介绍使用标签的相关知识。javax.swing.JLabel类即标签类,开发人员可以通过其建立包含文本、图像或两者都包含的标签。JLabel属于普通控件,也继承自javax.swing.JComponent类,该控件主要是用来给出提示信息的,是一种非交互的控件,一般不用于响应用户的输入,并且该控件没有修饰,从界面中是看不到该控件边界的。7.4.4 按扭GUI应用程序中,按钮是与用户交互使用得最多的控件之一,很多功能都是通过用户按下按钮来触发代码完成的。本节将介绍Swing中的按扭javax.swing.Jbutton的使用。javax.swing.JButton类是最简单的按扭类型,当单击按扭时会触发动作事件,如果给按钮注册了相应的监听器,按下按钮就可以执行指定的代码,完成一定的工作。JButton类是继承自javax.swing.AbstractButton类的,按钮的参数可以通过不同的构造函数初始化,7.5 布 局 管 理除了顶层容器控件外,其他的控件都需要添加到容器当中,容器相当于一个仓库。而布局管理器就相当于仓库管理员,采用一定的策略来管理容器中各个控件的大小、位置等属性。通过使用不同的布局管理器,可以方便地设计出各种控件组织方式的界面。常用的布局管理器有流布局、网格布局、卡片布局,本节将对这几种布局进行简要介绍。7.5.1 流布局流布局(FlowLayout)是一种非常简单的布局管理器,它按照控件添加的顺序,依次将控件从左至右、从上至下进行摆放,若一行不能放完则会自动转至下一行继续摆放。每一行所放置的控件默认会居中显示,也就是说,若在一行中所有的控件并没有占满这一行,则这些控件会显示在此行的中间。7.5.2 网格布局网格布局即GridLayout布局.该布局会尽量按照给定的行数和列数排列所有的控件,添加到该布局容器中的控件都将自动调整为相同尺寸,其填充的规则是尽量使现有控件形成矩形。若行和列的设置都不为0的话,其在形成矩形的同时会保证行数,而列数则是由控件总数与给定的行数来决定的。若行为0而列不为0的话,在形成矩形的同时会保证列数,而行数则是由控件总数与给定的列数来决定的。当容器的大小改变时,所有的控件也都会随着自动改变大小以保证尽量充满整个容器。7.5.3 卡片布局卡片布局即CardLayout布局。在卡片布局中,布局的容器中可以添加任意多个控件,但同一时刻只能看见其中的一个控件。所有被添加的控件与容器的大小相同,也就是说,所有添加进卡片布局容器中的控件大小是相同的。可以通过调用卡片布局管理器的相应方法使指定的控件显示,这些方法包括指定下一个、一个、第一个、最后一个或第几个控件显示。7.6 选 择 控 件图形界面应用程序中控件是必不可少的基本元素,将各种控件有机地组合起来,便可以搭建出各种各样的图形界面,用来满足不同应用的需要。作为开发人员,必须熟练掌握各种基本控件的使用才能从容应对各种开发的需求,从本章开始将详细介绍Swing中的各种常用控件。7.6.1 控件概述Java中所有的Swing控件都继承自javax.swing.JComponent类,而JComponent类则继承自java.awt.Container类,因此所有的Swing控件都具有AWT容器的功能,图所示为Java中所有Swing控件的继承树。7.6.2 文本框GUI应用程序中,文本框是使用率很高的控件。通过使用文本框和密码框,可以使应用程序与用户之间的交互变得更加方便。Swing中提供的文本框控件通过JTextField类实现。但是JTextField只能用于输入单行文本,如果文本的长度超出了控件可以显示的范围,其会自动滚动文本。对于JTextField,所有的剪切、复制、粘贴及其快捷键的操作都可以自动实现。JTextField类提供了5个构造函数,使得开发人员在创建JTextField对象的时候可以灵活选择,下面是其常用的构造函数。7.6.3 文本区使用上一节介绍的文本框可以方便地实现单行文本的输入,当需要输入多行文本时使用文本框就无法满足要求了,这时就需要使用文本区。Swing中专门提供了用来进行多行文本输入的文本区JTextArea。JTextArea类是Swing中提供的用单一字体和格式显示多行文本的控件,默认情况下其不会自动换行,但可以通过设置让其自动换行。JTextArea是以跨平台的方式处理换行符,根据不同的操作系统平台,文本文件中的行分隔符可以是换行符、回车或者二者的组合。7.6.4 单选按扭、复选框GUI应用程序中经常需要给用户提供一些选择的界面,如性别、爱好、职业等。这时根据选项情况的不同就需要使用单选按扭或复选框,本节将详细介绍Swing中的单选按扭(JRadioButton)与复选框(JCheckBox)。1JRadioButton类简介Swing中提供的单选按钮是JRadioButton,其继承自JToggleButton。这点很容易想通,JRadioButton也是一种能够记录状态(选中或未选中)的按钮,一共提供了8个构造器,下面只中列出了其中常用的几个。7.6.4 单选按扭、复选框2JCheckBox类简介通过JRadioButton与ButtonGroup的配合使用,可以很方便地实现单项选择。若需要使用多项选择,则应该使用复选框JCheckBox。JCheckBox也是JToggleButton的子类,因为它也是一种可以记录状态的按钮。与JRadioButton不同的是,JCheckBox不需要编组使用,各个选项之间没有逻辑约束关系。7.6.4 单选按扭、复选框3ItemEvent事件JRadioButton、JCheckBox与JToggleButton除了与JButton一样都会触发ActionEvnet动作事件外,JRadioButton、JCheckBox以及JToggleButton还会触发ItemEvent事件。关于ItemEvent事件需要注意以下两点。(1)ItemEvent事件与ActionEvnet动作事件不同,不是单击按钮就会触发,而是当按钮的状态发生变化时才会触发。例如,从选中到未选中,或者从未选中到选中都会触发ItemEvent事件。(2)ItemEvent事件的监听器需要实现ItemListener监听接口,只有向JRadioButton、JCheckBox或JToggleButton注册了实现ItemListener监听接口的监听器,当事件被触发时,才会执行监听器当中的事件处理方法。7.6.4 单选按扭、复选框4单选按扭与复选框的综合使用通过上面的介绍,读者对单选按扭与复选框有了一定的了解,下面将通过一个同时使用单选按扭与复选框的综合案例例7-10来进一步加深对这两个控件的理解。7.7 菜单和工具栏菜单、工具栏与对话框在GUI应用程序中有着非常重要的作用,通过菜单与工具栏用户可以非常方便地访问应用程序的各个功能,而对话框可以作为非常友好的用户与应用程序之间进行交互的媒介。本章将对Swing中菜单、工具栏与对话框的开发进行详细介绍。7.7.1 菜单随着GUI开发的普及,菜单在开发中也变得越来越重要,几乎每个应用程序都会提供相应的菜单。因此,Swing为菜单的开发提供了良好的支持,通过Swing中提供的菜单系列控件,开发人员可以非常方便地开发出各种各样的菜单,本节将对Swing中菜单的开发进行详细介绍。Swing中的菜单控件都是继承自JComponent类,大多数标准的Swing控件都可以用作菜单项。菜单项可以使用图标,可以为菜单项指定助记符或快捷键,还可以出现单选按扭以及复选框。7.7.2 工具栏除了菜单之外,工具栏也是现代GUI应用程序中非常重要的组成部分,通过工具栏可以大大方便用户对特定功能的访问。Swing中也提供了用于实现工具栏的类JToolBar,本小节将对JToolBar类的相关知识与具体使用进行详细介绍。GUI应用程序中一般会将一些表示常用功能的控件放在工具栏中,这样用户在使用这些功能时就不必到菜单中寻找,大大地方便了用户的操作。因此,工具栏(JToolBar)可以看成各种控件的容器,按钮、微调控制器等控件都可以添加进工具栏中。7.8 对 话 框GUI应用程序中种类繁多的对话框为用户的操作提供了很大的方便,是应用程序与用户进行交互的重要手段之一。为了方便开发,Swing对对话框的开发提供了很好的支持,本节将详细介绍如何在Swing中进行对话框的开发。JDialog是Swing中提供的用来实现自定义对话框的类,与JFrame类一样,JDialog类也属于顶层容器。如果需要实现自定义的对话框,可以继承并扩展该类。该类创建的对话框可以分为两种,模式对话框与非模式对话框。7.9 图形文本绘制随着时代的发展,现代的GUI应用程序中或多或少的会设置一些图形或动画。这样既能美化界面,使应用程序的内容丰富多采,也可以增加应用程序的交互性。使用带有丰富图象与动画的应用程序,用户会有更好的体验,不会感到乏味无趣。本章将介绍Java中图形的绘制与动画的开发。7.9.1 画布若要绘制图形,必须具备两个要素,一个是画布,另一个则是画笔。缺少了任何一个元素,图形的绘制都将无法进行,因此本小节将介绍Java中画布的相关知识。Swing中任何JComponent类的子类都可以充当画布的角色,前面已经介绍过JComponent类是所有Swing控件的超类,因此所有的Swing控件都可以作为画布。7.9.2 画笔上一小节介绍了画布的相关知识,本小节将介绍画笔的相关知识。Java在绘制图形时,是由Graphics类对象来充当画笔的,该类位于java.awt包中。Graphics类中提供了很多绘制简单二维图形的方法,开发人员使用这些方法就可以在画布上绘制指定的图形。在了解各个绘图方法之前,首先应该理解下面两个方面的内容。1Graphics对象的获取要特别注意的是,Graphics是一个抽象类,因此开发人员不应该自行编写代码来创建Graphics类的对象,而应该通过下列两种方式之一来获取其对象。2坐标系统Java中绘制图形采用的是笛卡尔坐标系统,该坐标系统以像素为单位。画布左上角为该坐标系统的原点(0,0位置),X轴向右延伸,Y轴则向下延伸。7.9.3 文本在Java中,Graphics类专门提供了一个用来绘制文本的drawString()方法,下面给出了该方法的接口。public void drawString(String str,int x,int y)参数str为指定要绘制的内容对应的字符串,而x与y分别表示该字符串最左上侧点在画布上的x、y坐标位置。7.9.4 字体绘制文本的时候若总是使用默认的字体,将使得程序的界面非常死板,没有新意。因此本小节将介绍Java中对字体提供支持的类java.awt.Font,通过该类可以使系统中支持的各种字体进行文本显示。Font类中封装了字体的3个属性:字体名称、样式以及字号,可以通过指定这3个属性来创建指定的字体。该类一共提供了3个构造器,但是开发中经常用到的是使用这3个属性作为参数的构造器,该构造器的声明如下。public Font(String name,int style,int size)7.10 图 像 处 理Java中不仅为图形绘制提供了丰富的方法,对图像处理也提供了很多非常方便的方法,本章将介绍一些Java中关于图像处理的知识。Java中进行图像处理的时候经常会用到java.awt.Image图像类,该类对象是图像在Java世界中的表示,本节将详细介绍Image类的知识及其在Java应用中的具体使用。Image类位于java.awt包中,是一个抽象类,是Java中所有表示图像的类的超类。实际开发中,一般使用不同类提供的工厂方法来加载图片文件,获取Image对象,7.11 综合示例:围棋程序在学习了图形用户界面后,本节将利用一个综合示例全面地阐述如何编写GUI程序。该例为一个围棋程序。在编写围棋程序时,需要绘制棋谱,编写白棋和黑棋的落棋、吃子等动作,并设置悔棋功能,双击棋子即可完成,单击“重新开局”按钮还可重新开始下棋。整个围棋程序分为3个部分:棋盘、棋子、围棋主类。7.12 小结本章介绍了Java中图形用户界面的编写,包含AWT和Swing。通过本章的学习,熟练掌握Java提供的图形组件的使用,才能开发出丰富的图形用户界面。

    注意事项

    本文(【教学课件】第7章图形用户界面的实现.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开