版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章图形编程初步从本章开始,就不在受限于只能够创建命令行应用程序,读者可以创建图形界面程序。图形编程内容主要包括AWT(AbstractWindowingToolkit,抽象窗口工具集)和Swing两个内容。AWT是用来创建Java图形用户界面的基本工具,JavaSwing是JFC(JavaFoundationClasses)的一部分,它可以弥补AWT的一些不足。11.1AWT简介AWT是抽象窗口工具集(AbstractWindowToolkit)的英文缩写,Java的AWT类库内容相当丰富,一共有60多个类和接口,包括了创建Java图形界面程序的所有工具。利用AWT类库,程序员可以在Applet的显示区域创建标签、按钮、复选框、文本域以及其他丰富的用户界面元素,还可针对用户的行为做出相应响应。Java抽象窗口工具集中有四个主要的类用于确定容器内组件的位置和形状,包括组件类(Component)、容器类(Container)、图形类(Graphics)和布局管理器(LayoutManager)。11.2组件和容器在抽象窗口工具集中,组件、容器和布局管理器是图形编程的基础。本节主要讲述AWT组件的基本概念和种类,并详细介绍了容器的概念、种类和层次结构,最后介绍了Frame和Panel的类继承关系,举例说明了两个容器的使用。11.2.1组件组件(Component)是Java图形用户界面程序设计的最基本组成部分,它是一个以图形方式显示的,并且可以与用户进行交互的界面组成元素,如按钮、标签、单选框、多选框等。单独一个组件是不能显示出来,必须将组件添加到容器当中才能显示。下面的表格列出了从java.awt.Component类演变产生的AWT组件。AWT组件
组件超类描述ButtonComponent触发行为的文本按钮CanvasComponent绘制图形的画布CheckboxComponent可检验的布尔组件ChoiceComponent文本软件的弹出菜单DialogWindow可模式化窗口FiledialogDialog选择文件的相关平台对话框FrameWindow具有标题栏和可选菜单的顶层窗口LabelComponent显示字符串的组件ListComponent文本输入的可滚动例表PanelContainer一般组件容器ScrollbarComponent滚动项目的adjustable组件ScrollpaneContainer可滚动容器TextareaTextComponent多行可滚动的文本框TextComponentComponentTestArea和TextField的基本功能TextFieldTextComponent输入文本的单行组件WindowContainer没有标题的无边界窗口11.2.2容器
Container也是一个派生于容器Component的抽象类,因此它拥有组件的所有属性和方法。容器最主要的功能是存放其他的组件和容器。一个容器可以存放多个组件,它将相关的组件容纳到一个容器中形成一个整体。使用容器存放组件的技术可以简化简化组件显示安排。所有的容器都可以通过add()方法添加组件。它的结构图如下所示:AWT的容器结构图
其中两个最常用的容器是窗口(Frame)和面板(Panel)。
11.2.3窗口(Frame)窗口(Frame)是Window的子类,它是顶级窗口容器,可以添加组件、设置布局管理器、设置背景色等。通常情况下,生成一个窗口要使用Window的派生类窗口实例化,而非直接使用Window类。11.2.4面板(Panel)面板(Panel)是容器的一个子类,它提供了建立应用程序的容器。可以在一个面板上进行图形处理,并把这个容器添加到其他容器中(如Frame、Applet)11.3布局管理器为了实现容器中跨平台的特性、组件的大小改变、位置转移等动态特性,Java提供了布局管理器容器(LayoutManager)处理机制。布局管理器可以实现容器内部组件的排列顺序、大小、位置以及窗口大小变化。11.3.1布局管理器的分类每一个容器中保存着一个布局管理器的引用,该布局管理器可以完成容器内组件的布局和整型。AWT提供了5种类型的布局管理器:BorderLayout(边界布局管理器)CardLayout(卡片布局管理器)FlowLayout(顺序布局管理器)GridLayout(网格布局管理器)GridBagLayout(网络包布局管理器)11.3.2顺序布局管理器顺序布局管理器(FlowLayout)是Panel和Applet缺省的布局管理器。构造方法主有如下几种。FlowLayout(FlowLayout.RIGHT,20,40):FlowLayout(FlowLayout.LEFT):FlowLayout():11.3.4网格布局管理器网格布局管理器(GridLayout)使容器中各个组件呈网格状分布,并且每一个网格的大小一致。其构造方法有如下几种。publicGridLayout():publicGridLayout(int
row,int
col):publicGridLayout(int
row,int
col,int
horz,int
vert):11.3.5卡片布局管理器卡片布局管理器(CardLayout)将每一个组件视为一张卡片,一次只能看到一张卡片,容器充当卡片的堆栈,容器第一次显示的是第一次添加的组件。构造方法有如下几种。publicCardLayout():publicCardLayout(int
hgap,int
vgap):11.3.6网格包布局管理器网格包布局管理器(GridBagLayout)是一个复杂的布局管理器,容器中的组件大小不要求一致。通常使用网格包布局管理器要涉及到一个辅助类GridBagContraints,该类包含GridBagLayout类用来保存组件布局大小和位置的全部信息。11.3.7容器的嵌套在复杂的图形用户界面设计过程中,将所有的组件一起添加到一个容器时,图形界面的管理是具有一定的难度。容器中可以添加容器,这就是容器的嵌套。容器的嵌套使复杂的图形用户界面的设计更加方便有效。11.4AWT组件库AWT的组件库是图形界面设计的基本组成元素,主要包括按钮、标签、复选框、下拉菜单、画布、文本输入区、列表、滚动条、对话框、菜单等组件。本节主要讲述AWT组件的应用。通过本节的学习,读者可以加深对AWT的理解,并且掌握各种常用组件的使用方法和技巧。11.4.1按钮、标签按钮(Button)是经常使用的组件之一,其构造方法如下所示:Buttonb=newButton("按钮名称");标签(Label)是一个可在容器中放置静态文本的组件,一个标签只显示一行文本,它能通过应用程序更改,但不可直接修改。其构造方法如下所示:Labellabel1=newLabel("文本内容")11.4.2复选框、下拉式菜单复选框(Checkbox)是一个可处于“on”或者“off”状态的组件,复选框旁边显示文本信息。它的主要方法如下。add(new
Checkbox("one",null,true));add(new
Checkbox("two"));下拉式菜单(Choice)表示一个弹出式选择菜单组件,并且只能选择其中的一项。ChoicecolorChooser=newChoice();ChoicecolorChooser.add("Green");
11.4.3画布(Canvas)画布(Canvas)是处于屏幕上的一个空白矩形区域,在该区域可以绘图,也可以获得用户激发的事件。画布的绘图方法是paint(),原型如下:publicvoidpaint(Graphicsg)注意:由于画布的paint()方法默认操作是清除画布,所以重写此方法的应用程序不需要调用super.paint(g)。绘图的方法:publicvoidupdate(Graphicsg)注意:update()方法不同于paint方法,必须在重写的update()方法中第一行调用super.update(g),或者重新实现背景色填充和重绘两个功能。11.4.4文本输入区、列表单行文本输入区是可编辑的单行文本组件,一般用来输入内容比较少的文本信息,如姓名、籍贯等。11.4.5滚动条滚动条(Scrollbar)是一个大家很熟悉的组件,在应用程序中可以调整线性值。滚动条可以设置可以选择的取值范围。创建滚动条时,必须指定的属性包括方向(垂直还是水平)、初始值(滚动块位置的值)、滑块的大小、最小值和最大值。11.4.6对话框、菜单对话框是Window类的子类,它是一个带有标题和边界的顶层窗口。对话框最主要的特点是它依赖于其他窗口,它分为无模式和有模式两种。两种模式的区别在于有模式对话框会阻止将内容输入到应用程序中的其他一些顶层窗口中。菜单是一个比较复杂的内容,通常有3个相关的类:Menu、MenuBar和MenuItem。类层次结构如下图所示。菜单的层次结构11.5绘图Java中提供了Graphics类用于绘图和显示格式化文字的输出工具。绘图必须在一个窗口中进行,比如Frame或者Applet等。本节主要介绍如何设置绘图颜色,设置文字的字体、大小和颜色以及绘制图形的程序案例。11.5.1文字输出Graphics对象选择颜色有两种方法,一种是直接用RGB颜色值创建Color对象如下所示,另一种是用颜色常量,如Color.red,Color.green等。设置窗口背景色的方法:publicvoidsetBackground(Colorc)设置Graphics的绘图色:publicabstractvoidsetColor(Color
c);Col
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度专业园艺设计施工合同3篇
- 2024年金融科技服务平台委托合同
- 2025年度餐饮企业食品安全管理体系建设合同范本3篇
- 二零二五年度租赁铲车附带工程验收合同3篇
- 二零二五版企业社会责任LOGO设计合同3篇
- 2024年高标准管沟开挖工程合同
- 2025年度离婚协议及子女监护权及财产分割合同3篇
- 2024装饰项目工程承包合同版B版
- 2025年度航空航天器零部件加工与供应合同规范4篇
- 年度其它网络系统专用设备战略市场规划报告
- 2025年工程合作协议书
- 2025年山东省东营市东营区融媒体中心招聘全媒体采编播专业技术人员10人历年高频重点提升(共500题)附带答案详解
- 2025年宜宾人才限公司招聘高频重点提升(共500题)附带答案详解
- KAT1-2023井下探放水技术规范
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 驾驶证学法减分(学法免分)题库及答案200题完整版
- 2024年四川省泸州市中考英语试题含解析
- 2025届河南省九师联盟商开大联考高一数学第一学期期末学业质量监测模拟试题含解析
- 抚养权起诉状(31篇)
- 2024年“一岗双责”制度(五篇)
评论
0/150
提交评论