第十二讲Java与图形

合集下载

第7章_Java_awt 509修改 - 副本 (2)

第7章_Java_awt 509修改 - 副本 (2)

17
Frame类(框架)
Frame类是Container类的间接子类。当需要一个窗口时, 可使用Frame或其子类创建一个对象。窗口也是一个容器,
可以向窗口添加组件。窗口默认地被系统添加到显示器屏
幕上,因此,不允许将一个窗口添加到另一个容器中。 Frame是顶级窗口,可以显示标题,重置大小。当Frame 被关闭,将产生WindowEvent事件,Frame无法直接监听 键盘输入事件。
文字、图形、图象… 不能像标准组件一样被系统识别和承认,只起装饰作用。 不能响应用户的动作,不具有交互功能。
8
7.2 组件和容器
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个可以以图形化的方 式显示在屏幕上并能与用户进行交互的对象,例
如一个按钮,一个标签等。
给用户的技术。
目前Java主要提供了两个处理图形用户界面的类库: java.awt和javax.swing。
2
AWT:抽象窗口工具集(Abstract Windows Toolkit), 其外观取决于具体的平台,可用于Java的applet和 application。 java.awt包中包含了一个完整的类集以支持GUI程序的设 计(重量级构件),比如组件、图形等。
7 7
界面元素
容器是用来组织其他界面成分和元素的单元。
可以形成容器的层次,构筑复杂结构 Window(Frame、Applet、Dialog )
组件是图形用户界面的基本单位,它里面不再包含 其他的成分。
GUI组件是图形用户界面标准化的结果。 GUI组件的作用是完成与用户的交互。
用户自定义成分
Canvas Label TextField TextArea Scrollbar

计算机短期培训教案

计算机短期培训教案

计算机短期培训教案第一章:计算机基础知识1.1 计算机简介介绍计算机的发展历程、计算机的定义和作用讲解计算机硬件和软件的基本组成1.2 计算机硬件讲解计算机硬件的组成及功能重点介绍中央处理器(CPU)、内存、硬盘、显示器等1.3 计算机软件讲解计算机软件的分类和作用介绍操作系统、应用软件、程序设计语言等1.4 计算机操作基础讲解计算机的操作界面、桌面、窗口、菜单等基本操作教授如何启动和关闭计算机、如何使用键盘和鼠标等第二章:文字处理软件2.1 文字处理软件概述介绍文字处理软件的功能和应用场景讲解如何打开和保存文档、编辑文档的基本操作2.2 文档编辑讲解输入文字、编辑文字、设置字体和段落格式等操作教授如何进行复制、粘贴、删除、撤销等编辑操作2.3 文档排版讲解如何设置文档的、副、列表、分页等排版操作介绍如何使用边框、底纹、颜色等美化文档2.4 表格制作讲解如何创建、编辑表格介绍如何设置表格的行高、列宽、边框等格式第三章:电子表格软件3.1 电子表格软件概述介绍电子表格软件的功能和应用场景讲解如何打开和保存工作簿、工作表的基本操作3.2 数据输入与编辑讲解如何输入数据、编辑数据、设置单元格格式等操作教授如何进行复制、粘贴、删除、撤销等编辑操作3.3 数据处理讲解如何进行排序、筛选、分类等数据处理操作介绍如何使用公式、函数进行数据计算3.4 图表制作讲解如何创建、编辑图表介绍如何设置图表的、坐标轴、图例等格式第四章:演示文稿软件4.1 演示文稿软件概述介绍演示文稿软件的功能和应用场景讲解如何打开和保存演示文稿、幻灯片的基本操作4.2 幻灯片制作讲解如何添加、编辑、删除幻灯片介绍如何设置幻灯片的背景、字体、颜色等格式4.3 插入对象讲解如何插入图片、图表、文字框等对象介绍如何对插入的对象进行编辑和格式设置4.4 动画和切换效果讲解如何为幻灯片添加动画效果介绍如何设置幻灯片之间的切换效果第五章:网络基础与应用5.1 计算机网络概述介绍计算机网络的定义、分类和作用讲解网络拓扑结构、网络协议等基本概念5.2 互联网连接讲解如何连接互联网、设置网络参数介绍如何使用浏览器、搜索引擎进行网上浏览5.3 电子邮件讲解如何申请和使用电子邮件账号介绍如何发送、接收、管理电子邮件5.4 网上娱乐与社交讲解如何使用QQ、等社交软件介绍如何在网上进行购物、看电影、玩游戏等活动第六章:数据库基础6.1 数据库概述介绍数据库的定义、作用和基本概念讲解关系型数据库、SQL语言等基本知识6.2 数据库操作讲解如何创建、修改、删除数据库和表介绍如何进行数据插入、查询、更新等操作6.3 数据库管理讲解如何使用数据库管理工具(如SQL Server Management Studio)介绍如何进行数据库备份、恢复、安全设置等管理操作6.4 简单数据库应用讲解如何使用SQL语句进行数据查询和报表介绍如何利用VBA或Python等语言进行数据库编程第七章:计算机编程基础7.1 编程语言概述介绍常见编程语言(如C语言、Python、Java)的特点和应用场景讲解编程语言的基本语法、流程控制结构等7.2 编程语言实践讲解如何使用集成开发环境(IDE)进行编程介绍如何编写、调试和运行简单的程序7.3 算法与数据结构讲解算法的基本概念、设计方法介绍常见的数据结构(如数组、链表、树、图)及其应用7.4 编程实例与项目实践讲解如何分析需求、设计程序架构介绍如何进行软件开发、测试和维护第八章:图像处理软件8.1 图像处理软件概述介绍图像处理软件的功能和应用场景讲解如何打开和保存图像文件、基本编辑操作8.2 图像编辑讲解如何调整图像大小、裁剪、旋转等编辑操作介绍如何使用图层、蒙版、滤镜等特性进行创意设计8.3 色彩调整与效果制作讲解如何调整图像亮度、对比度、饱和度等色彩参数介绍如何制作各种图像效果(如黑白、马赛克、滤镜效果)8.4 图像合成与输出讲解如何将多张图像合成为一张、添加文字、图形等元素介绍如何设置图像输出格式、尺寸、分辨率等第九章:网络安全与防护9.1 网络安全概述介绍网络安全的定义、目标和基本概念讲解计算机病毒、黑客攻击、数据泄露等安全问题9.2 计算机病毒与防范讲解计算机病毒的传播、危害和预防措施介绍如何使用杀毒软件、防火墙等工具进行防护9.3 数据加密与安全讲解数据加密的原理、算法(如DES、RSA)介绍如何使用加密软件、加密存储设备等保护数据安全9.4 网络防护策略讲解如何设置网络防火墙、入侵检测系统等防护措施介绍如何进行网络安全监测、漏洞扫描、安全评估等操作第十章:计算机硬件维护与升级10.1 计算机硬件概述介绍计算机硬件的分类、性能指标和升级原因讲解如何选择合适的硬件配件、组装计算机10.2 硬件维护与故障排查讲解如何进行计算机硬件的日常维护、清洁、散热等介绍如何使用检测工具、查找硬件故障原因10.3 硬件升级策略讲解如何选择升级硬件配件、升级操作系统等介绍如何进行硬件升级操作、注意事项及风险评估10.4 外设使用与维护讲解如何连接、使用计算机外设(如打印机、扫描仪、摄像头等)介绍外设的维护方法、故障排查和更换策略第十一章:网页设计与制作11.1 网页设计基础介绍网页设计的概念、原则和基本元素讲解HTML、CSS和JavaScript的基本语法和应用11.2 网页制作工具介绍常见的网页制作工具(如Dreamweaver、Visual Studio Code)讲解如何使用这些工具创建、编辑和发布网页11.3 网页布局与美化讲解常见的网页布局方法(如固定布局、百分比布局、响应式布局)介绍如何使用CSS样式、框架(如Bootstrap)进行网页美化11.4 网页交互与动态效果讲解如何使用JavaScript实现网页交互功能介绍如何使用jQuery、Ajax等技术制作动态网页效果第十二章:多媒体技术12.1 多媒体技术概述介绍多媒体技术的概念、特点和应用领域讲解音频、视频、图像等媒体文件的基本知识12.2 多媒体文件处理讲解如何获取、编辑多媒体文件(如音频、视频、图片)介绍如何使用多媒体编辑软件(如Adobe Premiere、Photoshop)进行处理12.3 多媒体演示制作讲解如何使用多媒体演示软件(如PowerPoint、Keynote)制作演示文稿介绍如何添加音频、视频、动画等元素丰富演示内容12.4 动画设计与制作讲解动画设计的基本原理、类型和制作方法介绍如何使用动画制作软件(如Flash、After Effects)制作动画效果第十三章:计算机维护与故障排除13.1 计算机维护概述介绍计算机维护的重要性、内容和常用方法讲解如何进行计算机硬件和软件的维护13.2 系统优化与清理讲解如何优化计算机系统性能、提高运行速度介绍如何使用清理工具、删除不必要的文件和程序13.3 故障排除与维修讲解计算机常见故障的类型、原因和表现介绍如何使用诊断工具、查找故障原因并进行维修13.4 数据恢复与备份讲解数据恢复的概念、方法和常用工具介绍如何进行重要数据的备份和恢复操作第十四章:计算机辅助设计(CAD)14.1 CAD软件概述介绍CAD软件的概念、功能和应用领域讲解如何打开和保存CAD文件、基本操作界面14.2 二维绘图基础讲解如何在CAD软件中进行二维图形的绘制、编辑介绍如何设置绘图参数、使用绘图工具和命令14.3 三维建模与渲染讲解如何在CAD软件中进行三维建模、编辑和渲染介绍如何使用材质、灯光、相机等设置来增强模型效果14.4 CAD应用实例讲解如何分析设计需求、绘制CAD图纸介绍常见的CAD应用实例(如建筑、机械、电子设计)第十五章:与机器学习15.1 概述介绍的概念、历史和主要技术讲解机器学习、深度学习等子领域的基本原理15.2 机器学习基础讲解机器学习的基本任务、模型和算法介绍如何使用机器学习框架(如TensorFlow、PyTorch)进行模型训练和预测15.3 深度学习应用讲解深度学习在计算机视觉、自然语言处理等领域的应用实例介绍如何使用深度学习技术解决实际问题15.4 伦理与法律讲解伦理和法律问题的主要内容介绍如何在开发和应用中遵守伦理和法律规范重点和难点解析1. 计算机基础知识:理解计算机硬件和软件的基本组成,掌握计算机操作基础。

java rectangle2d 类解释

java rectangle2d 类解释

Java Rectangle2D 类解释1. 引言在Java编程语言中,Rectangle2D类是一个用于表示2D平面上矩形的类。

它提供了一系列方法来操作矩形,比如计算面积、判断包含关系等。

本文将详细解释Java Rectangle2D类的使用,并探讨其在实际开发中的应用。

2. Rectangle2D 类概述Rectangle2D类位于java.awt.geom包中,是一个抽象类,不能直接实例化。

它有两个具体的子类:Rectangle2D.Float和Rectangle2D.Double。

它们分别表示浮点精度和双精度的矩形。

Rectangle2D类主要提供了以下几个方法:- getWidth():获取矩形的宽度- getHeight():获取矩形的高度- contains(x, y):判断坐标(x, y)是否在矩形内- contains(Rectangle2D r):判断矩形r是否完全在当前矩形内- intersect(Rectangle2D r):计算当前矩形与矩形r的交集3. 使用示例接下来,我们将通过一个简单的示例来演示如何使用Rectangle2D类。

假设我们需要在Java图形界面中绘制一个矩形,并计算其面积。

我们可以创建一个Rectangle2D对象,然后调用其方法来完成绘制和计算。

```javaimport java.awt.geom.Rectangle2D;public class Main {public static void main(String[] args) {Rectangle2D rectangle = new Rectangle2D.Double(10, 10, 100, 50);double area = rectangle.getWidth() * rectangle.getHeight(); System.out.println("矩形的面积为:" + area);}}```在这个示例中,我们使用了Rectangle2D.Double来创建一个矩形对象,然后通过getWidth()和getHeight()方法计算其面积,并将结果打印出来。

java跳棋课程设计

java跳棋课程设计

java跳棋课程设计一、教学目标本课程旨在通过Java编程语言实现一个跳棋游戏,让学生掌握以下知识目标:1.理解并掌握Java基本数据类型、控制结构、函数、数组等编程基础。

2.学习并应用Java面向对象编程思想,理解类、对象、封装、继承等概念。

3.熟悉并运用Java常用类库,如java.awt和javax.swing,实现图形用户界面。

4.能够使用Java语言编写简单的程序。

5.能够运用面向对象的思想进行程序设计。

6.能够独立完成一个基本的跳棋游戏的编程和调试。

情感态度价值观目标:1.培养学生对编程的兴趣和热情,提高学生解决实际问题的能力。

2.培养学生团队协作、沟通交流的能力。

3.培养学生独立思考、自主学习的能力。

二、教学内容本课程主要教学内容如下:1.Java基本数据类型、控制结构、函数、数组等编程基础。

2.Java面向对象编程思想,包括类、对象、封装、继承等概念。

3.Java常用类库,如java.awt和javax.swing,实现图形用户界面。

4.跳棋游戏的规则介绍和实现。

5.第一周:Java基本数据类型、控制结构、函数、数组。

6.第二周:Java面向对象编程,包括类、对象、封装、继承。

7.第三周:Java常用类库,如java.awt和javax.swing。

8.第四周:跳棋游戏的规则介绍和实现。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法:1.讲授法:用于讲解Java基本语法、数据类型、控制结构等基础知识。

2.案例分析法:通过分析实际案例,让学生理解并掌握面向对象编程思想。

3.实验法:让学生动手实践,独立完成跳棋游戏的编程和调试。

四、教学资源教学资源包括:1.教材:《Java编程思想》2.参考书:《Java核心技术》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

Java语言程序设计:第十章 Java图形用户界面

Java语言程序设计:第十章 Java图形用户界面

t}ryesflrs{eaetmD{teer.fypaau{cltkC(l)o; seOperation(EXIT_ON_CLOSE);
选中“ToGoelnUyke}DsiItrMt.caiegmtjefaebreamxtaeIcHtncnmDnLheeaistoea}ep((gidf)oE.ctae;veinkxoaurarAc单.ntcllsstcieo.dTnc击ephmpoardrtetmotLi(i“FneoeEleokte(nnFnS)xoieiSttl”ec(te;kla)}iC”exzA.cgceplkneaetT=dtipsoS“rFtsanicoSNecrnaeeeav)(exlem(){nc;ASeellp”(iz)t)ei保;o()n存;)源{ 文U件I和M工an程a文g件er.getS

有间距
CENTER
的 East
组 容se器tHgap(int hgap)

setVgap(int vgap)

将组件间的水平间距设置为指定的值

将组件间的垂直间距设置为指定的值
下边的组件
South
天津职业技术师范大学
BorderLayout
…… class testFrame extends JFrame {
天津职业技术师范大学
BorderLayout
North

边 West 的
组 容器

上边的组件 CENTER
下边的组件
South
右 边 的 East 组 件
天津职业技术师范大学
BorderLayout
North
方法
左 BorderLay边out( )
West 的

Java项目式教学课程教案

Java项目式教学课程教案

Java项目式教学课程教案一、课程定位本课程是我院计算机专业软件开发方向的一门必修课,在课程体系中起核心位置。

本课程是用目前最流行编程语言之一Java语言描述,Java具有简单性、面向对象性、平台无关性、安全性和健壮性等诸多特点,广泛用于网络编程和嵌入实现。

本课程是一门理论和实践相结合的课程,通过程序设计实例的分析和上机实践,使学生掌握Java程序设计语言,理解面向对象的程序设计的思路和方法,、具备软件开发的基础能力,为今后从事软件开发和应用打下基础。

二、课程总目标本课程教学总目标是通过学生学习Java 语言基础和大量程序编制实践,让学生具体达到以下几点基本要求:(一)知识目标1.掌握面向对象编程的基本思路和知识,能在具体实际中运用面向对象思想考虑问题;2.利用布局管理开发图形用户界面(GUI),并使用Java语言的事件委托机制开发GUI应用程序;3.掌握Java的多线程机制;4.初步掌握JDBC-API的基本知识,并能够开发有一定规模的数据库管理系统;5.初步掌握Java网络编程技术,能利用Sockets机制进行网络通信软件的开发;6.理解并掌握Applet的原理,能够开发简单的Applet程序;7.掌握Java的异常处理机制,能开发容错性良好的程序;(二)技能目标1.具备运用Java程序设计语言编码的能力。

2.具备运用面向对象方法分析和设计的基本能力。

3.具备运用Eclipse等常用编程工具的能力。

4.具备运用Java开发简单GUI程序的能力。

5.具备运用Java进行网络程序开发的基本能力。

(三)素质目标1.培养学生运用面向对象思想架构和管理程序系统的能力,树立科学的分析和设计理念。

2.培养学生严密的逻辑思维能力、严谨的学风、创新意识和创新精神,强化团队合作的意识。

3.具备程序员的基本职业素质,也为后期项目设计课程做好准备,并基本达到国家二级Java考试水平。

三、重点、难点章节及内容将本课程将整个教学内容分为四大模块:基础篇、面向对象、图形化设计、网络编程,共30个任务实施任务驱动式教学。

Java标准教程:Java 2D绘图--第1章 Java 2d API概念概述

Java标准教程:Java 2D绘图--第1章Java 2d API概念概述Java 2D API通过扩展抽象窗口工具箱(AWT),为Java程序提供了二维图像,文本和图形的功能。

这个复杂的渲染包支持线形图像,文本和图形,为富用户界面,复杂绘图程序和图像处理器开发者提供灵活的,功能强大的框架。

Java 2D对象出现在一个平面中,称为用户坐标系空间,和设备坐标系空间。

当对象在屏幕或打印机中渲染时,用户空间坐标系被转换成设备空间坐标系。

以下链接可以在开始学习Java 2D API时是很有用的:●Graphics●Graphics2DJava 2D API提供了以下功能:●为设备和打印机展示统一的渲染模型。

●大量基本集合图形,例如曲线,矩形,椭圆,以及渲染任何集合图形的渲染技术。

●在图形,文本和图像中执行撞击检测。

●一个复杂的模型,提供了控制如何渲染重叠对象。

●增强型的颜色支持。

●使用渲染提示控制渲染的质量。

这些主题在以下章节中进行介绍:●Java 2D 渲染●基本集合图形●文本●图像●打印1.1 坐标系Java 2D API维护两个坐标系空间。

●用户空间:指定基本图形的空间。

●输出设备的坐标系,例如屏幕,窗口或打印机。

用户空间是独立于设备的逻辑坐标系,坐标系空间是您的应用程序使用的。

所有传递到Java 2D渲染流程中的几何图形都使用用户空间坐标系指定。

当使用从用户空间到设备空间的转换时,原有的用户空间是组件绘制空间的左上角。

X轴向右增加,y轴向下增加,和下图中展示的一致。

窗体的左上角时(0, 0)。

所有的坐标系都是用整数表示,通常是足够的。

然而一些情况下需要浮点甚至double精度的坐标,也是支持的。

1.2 Java 2D渲染Java 2D API为不同类型的设备提供了统一的渲染模型。

在应用程序级别,不管设备是屏幕还是打印机,渲染流程是一样的。

当组件需要展示时,它的paint 或update方法会在合适的Graphics是上下文中被自动调用。

Java标准教程:Java 2D绘图--第4章使用Text

Java标准教程:Java 2D绘图--第4章使用Text本节介绍文本API的用法,以及他们的渲染能力。

至今为止,您已经有了基本的Java 2D文本API,同时知道如何设置字体和位置,以及绘制文本。

本节扩展了这些知识,同时更深入的介绍了Java 2D文本展示的知识。

这些主题在以下几个部分中讨论。

●选择字体本节介绍如何使用Font类中的方法决定系统中存在哪些字体,创建一个Font对象,同时从字体家族中获得信息。

●测量字体本节介绍了如何使用FontMetrics类的实例测量文本。

●高级文本展示本节解释如何定位和渲染一段有风格的文本,如何展示抗锯齿的文本,以及如何使用文本属性定义文本风格。

1.1 选择字体Java 2D定义了以下五个逻辑字体家族:●Dialog●DialogInput●Monospaced●Serif●SansSerif这些字体在任何Java平台都可得,同时可以当做底层平台中有相应属性字体的别名。

Serif字体是和Times New Roman类似的字体,通常用来打印。

Sans Serif字体通常在屏幕中使用。

这些字体定制成用户的本地化信息。

同时,这些字体支持大范围的代码点(unicode字符集)。

除了家族之外,字体还有其他属性,最重要的是风格和大小。

风格是粗体和斜体。

默认的Java 2D字体是12pt Dialog。

这个字体是通常用在普通的72–120 DPI 现实设备中的字体大小。

应用程序可以通过下面的方式创建字体:除了逻辑字体之外,Java软件支持访问系统中已经安装的其他字体。

所有可找到的字体的可以通过以下方式得到:FontSelector示例程序展示了如何定位和选择这些字体。

您可以使用这个例子查看Sans Serif在您的系统中是什么。

其他字体都称为物理字体。

有时,应用程序不能依赖于已经安装到系统中的字体,通常因为这些是自定义字体,在系统中不存在。

这种情况下,应用程序必须包含字体。

韩顺平老师java视频课程笔记1-13课

JA V A学习记录第一讲//pulic:表示这个类是公共的,一个java文件中只能有一个public类//class :表示这是一个类//Hello:类名(公共类的类名必须和文件名一致)public class Hello{//一个主函数,相当于是程序的入口public static void main (String args[]){/* 多行注释*///System.out.println("hello");int a=10;// 定义一个变量,变量名位a,它的值为10// int为4个字节,long为8个字节int b=20;int result=a+b//输出结果system.out.println("结果是"+result)}}第二讲JA V A基本数据类型四大类型整数类型小数(浮点)类型基本数据类型布尔类型字符类型1.整数类型整数类型表示一个整数,常用的整数类型有:byte, short, int, long范围:byte 一个字节-128 – 127short 两个字节-32768 - 32767int 四个字节-2147483648 – 2147483647long 八个字节一个字节= 八个byte例:一个byte0 0 0 0 0 0 0 1 最高位为符号位0表示正数,1表示负数1 1 1 1 1 1 1 1 – 0 1 1 1 1 1 1 12.小数(浮点)类型常用类型有float, double3.布尔类型可以表示:真或者假,类型是boolean4.字符类型表示单个字符,字符类型是char,chai是两个字节,可以存放汉字。

多个字符称为字符串,在java中用String表示,String属于类。

.在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。

(汉字则是unic码)定义变量int a初始化变量int a = 45给变量赋值int a ; a =45基本数据类型转换int a = 1.2 错误会损失精度double a = 4 正确数据类型可以自动从低精度向高精度转换。

Java程序设计:第八章 Swing图形界面程序设计


原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十二讲 Java与图形
从这讲开始我们来学习Java的一些高级应用。这一讲我们先来学习Java里怎么处理图形,
包括绘制简单的几何图形、填充图形、加载图形和显示图形等。主要要用到两个类:Graphics
类和Image类。
1 Graphics类
1.1 概述
在AWT中,使用java.awt.Graphics类来绘制图形,比如:直线、折线、矩形,填充颜
色等;它里面有47种公共方法,基本可以满足各种绘图需要。
要学习Graphics类,我们首先来学习paint(Graphics g)和repaint()方法。
paint(Graphics g)方法可以使一个Applet在屏幕上显示某些信息,在applet的生命周
期内可以多次调用。例如,在applet被其他页面遮挡之后又重新放到最前面或者改变浏览器
窗口大小时,paint()方法会被调用。paint()方法有一个参数g,是一个Graphics的对象。
repaint()方法的作用是重做paint()方法的动作。它会调用update( )方法,而update
( )方法先清除paint()方法以前所画的内容,然后调用paint()方法。
1.2 示例
下面,我们就来学习Graphics类提供的各种图形绘制方法。
1.2.1 直线(drawLine(int x, int y, int x2, int y2):
AWT不能画不固定宽度的直线,其宽度一般是一个象素;
1.2.2 折线(drawPolyline(int[ ] xPoints, int[ ] yPoints, int numPoints);
该方法中,传递两个数组:一个数组指定每个点的x坐标值,另一个数组指定点的y
坐标值,numPoints指定要画的折线的点数。
矩形
1.2.3 Graphics类中有很多绘制矩形的方法,典型的有下面三种:
实体的(solid)
圆角的(rounded)
三维的(3D)
1.2.4 下面列出的是绘制和填充矩形的方法:
drawRect(int x, int y, int w, int h)
drawRoundRect( int x, int y, int w, int h, int arcWidth, int arcHeight);
draw3DRect(int x, int y, int w, int h, boolean raise)
fillRect(int x, int y, int w, int h)
fillRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight);
fill3DRect(int x, int y, int w, int h, boolean raise)
x, y, w, h分别是横坐标、纵坐标、宽度和高度。坐标系以左上角为坐标原点。
3D矩形中的boolean raise参数指明矩形的3D效果是凸的还是凹的:如果raise为true,
表明是凸的,否则表明是凹的。
圆角矩形中的参数int arcWidth, int arcHeight则表明圆角的水平直径和垂直直径。
我们用程序来说明。
1.2.5 弧
绘制弧的方法是:
drawArc(int x, int y, int w, int h, int startAngle, int endAngle)
x和y分别表示该弧的外切矩形的左上角坐标;w和h分别表示该弧的长度和高度,而
startAngle和 endAngle则表示起始角度和终止角度。
填充弧的方法是:
fillArc(int x, int y, int w, int h, int startAngle, int endAngle)
弧是唯一的一种非封闭的,但可以填充的图形。填充弧的范围从弧的中心与起始点的连
线开始,到中心与结束点的连线为止。
我们看看程序示例。
1.2.6椭圆
绘制圆:
drawOval (int x, int y, int w, int h)
fillOval (int x, int y, int w, int h)
参数的意义与绘制弧的相同:x和y分别表示该椭圆的外切矩形的左上角坐标;w和h
分别表示该椭圆的长度和高度。

2 Image类
2.1 概述
如果要画出Gif格式或者JPEG格式的复杂图象,需要用到Image类和
Graphics.drawImage( )方法。
图象生产者和图象消费者,图象观察者
图象生产者产生图象的位,常见的图象生产者是图象源;图象消费者是接受图像的位,
常见的图象消费者是象素抓取器;图象观察者监视图像生产者的图象生产过程。我们可能难
以理解这些话,我们需要记住的是:Graphics的drawImage( )方法的参数需要一个图象
观察者,而所有构件都继承了java.awt.Component,而Component实现了图象观察者接口,
所以所有构件都是图象观察者,都可以作为drawImage( )的参数。
2.2 加载和显示图象
getCodeBase()是返回当前运行的代码所在的目录;
显示出高度和宽度都为-1,这是因为图象加载尚未完成;一旦图象加载完成,就不会
有这个问题。我们来看看程序的运行结果。
2.3 应用程序中加载和显示图象
应用程序如果要框架,就要继承Frame,然而Frame并没有getImage( )方法,所以
应用程序加载图象要用到不同的方法。方法就是使用Toolkit类。因为Toolkit类有getImage
( )方法。我们来看一个例程。
2.4 无闪动的图象加载
引起闪动的原因,是applet的update( )方法。repaint( )方法将会调用update( )
方法,而方法先清除paint()方法以前所画的内容,然后调用paint()方法。就是这些清
除和重画过程导致画面闪动。清除闪动有一个简单的办法:覆盖update( )方法,使它不
清除,而直接调用paint( )。

小结
这一讲我们学习了Java中的图形应用,包括绘制简单的图形和加载显示复杂的图形。
习题
1.绘制一个平面直角坐标系,以坐标(100,100)为圆心,画一个半径为100的圆和它的
内切矩阵,并填充该矩阵。
2. 加载和显示一个gif格式动画图象。

相关文档
最新文档