第8章 Java Applet.ppt_第1页
第8章 Java Applet.ppt_第2页
第8章 Java Applet.ppt_第3页
第8章 Java Applet.ppt_第4页
第8章 Java Applet.ppt_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前面的章节我们阐述了Application的应用 这一讲我们将介绍java的另一类应用javaApplet 即java小应用程序 在Java问世的头几年里 其热门的根本原因还是在于Java具有 让Internet动起来 的能力 具体地说 就是Java能创建一种特殊类型的程序 通常称作 小应用程序 或者Applet 具备Java能力的Web浏览器可从网上下载这种程序 然后运行 由于小应用程序是用一种功能强大的程序设计语言编制的 与HTML XML和脚本语言的任何一种可能的组合相比 它仍然具有其自身的优势 第8章JavaApplet Java小应用程序 JavaApplet 是使用Java语言编写的一段代码 它能够在浏览器环境中运行 Applet与Application地主要区别在于它们的执行方式不同 Application是使用命令行命令直接运行 从其main 方法开始运行的 Applet则是在浏览器中运行的 首先必须创建一个HTML文件 通过编写HTML语言代码告诉浏览器载入何种Applet以及如何运行 再在浏览器中给出该HTML文件的URL地址 Applet本身的执行过程较Application复杂 8 1JavaApplet的特点 例8 1applet应用程序的演示本例演示小应用程序的编写与运行 Applet小应用程序 文件名为HelloApplet java importjava awt importjava applet Applet 引入Applet类publicclassHelloAppletextendsApplet Stringhw text publicvoidinit init 方法是Applet首先执行的方法hw text HelloWorld publicvoidpaint Graphicsg g drawString hw text 25 25 在 25 25 处显示字符串 8 1第一个Applet 8 1第一个Applet Applet程序编写完后 首先用java编译器编译成为字节码文件 然后编写相应的HTML文件才能够正常执行 为运行上面的Applet程序所编写的HTML文件ex applet html 运行小应用程序appletviewerex applet html也可以由IE直接运行ex applet html 8 2 1Applet类的创建Applet类是个特殊的图形类 在java applet包中 其层次关系如图 8 2Applet类 Applet类是Panel类的一个子类 它具备面板的特性 使用FlowLayout布局 与Panel不一样的是它是一个可运行的类 下面的语句创建一个小应用程序 importjava applet publicclassMyAppletextendsApplet 创建一个小应用程序 importjava applet publicclassMyAppletextendsApplet 创建小应用程序要注意的问题每一个小应用程序都继承自java applet Applet类 而且必须是public类 与文件名同名 Applet可直接嵌入到html中运行 不需要main 方法 Applet类是Panel类的子类 可在其上面布置其他组件 用来完成与用户的交互 8 2 1Applet类的创建 8 2 2Applet的运行与生命周期 小应用程序的运行过程 下载字节码 HTML文件 WWW服务器 WWW服务器 WWW浏览器 Browser 请求HTML文件 下载HTML文件 请求Applet字节码文件 解释执行字节码 Applet的下载与运行过程 8 2 2Applet的生命周期 程序运行开始到结束的过程称为生命周期独立程序的生命周期是从main 方法开始 直到运行结束小应用程序的生命周期与浏览器息息相关 作为IE的一部分 小应用程何时运行何时结束由IE控制 Applet对象是IE运行中的一个线程当打开浏览器时 创建并初始化其中的Applet对象当显示Applet时 启动Applet线程运行当不显示Applet时 停止Applet线程运行 当关闭浏览器时 消亡Applet对象 Applet类中定义了4个控制小应用程序的执行的方法 12 2 2Applet的生命周期 离开Web页面 极小化或装入其他页面 调用stop 方法 applet不显示 重新装入或改变页面大小或返回Web页面 调用start 方法 重新显示applet 关闭浏览器 调用stop destroy 方法 第一次装入 调用init 方法 创建applet对象 调用start 方法 8 2 2Applet的生命周期 Applet被设计为从远程站点下载然后在本地执行 所以安全问题非常重要 如果用户在游览器中启用了Java 那么浏览器就会自动下载网页中的Applet代码并执行 用户没有机会来确认或者停止Applet的运行 基于这样的原因 与Application应用程序相比 Applet被作了限制 Applet的限制执行环境常常称作sandbox 运行在沙箱中的Applet不能更改或探查用户的系统 8 2 3Applet安全基础 当Applet运行在sandbox中时 Applet不能读写本地计算机的文件系统 也不能运行任何本地可执行程序 除了与下载处它的服务器 该服务器称作原始主机 Applet不能同的其他任何主机通信 这条规则使得Applet不能探查企业内部网上的资源 Applet只能获取本地计算机中的以下信息当前使用的Java版本 操作系统的名字和版本 用来分离文件 路径以及行的字符 除上述外 Applet不能获取任何其它关于本地计算机的信息 Applet弹出的所有窗口都会带有一警告消息 告诉用户这是一个Applet 8 2 3Applet安全基础 paint 方法Java允许在组件上绘制图形 为此java在java awt Component类中定义了paint 和repaint 方法 用于显示和刷新图形 paint方法的参数是Graphics类的对象g 它在java awt Graphics内publicvoidpaint Graphicsg paint 是由系统或浏览器自动调用的 而不是由程序员调用 当程序希望调用paint方法时 在组件上绘制图形Applet本身是一个容器 因此任何输出都必须用图形方法paint 当小应用首次被装载 以及每次窗口放大 缩小 刷新时都要调用paint方法如果在程序中需要调用paint 方法时 可以使用repaintt 方法来实现 8 2 4Applet的pain 方法 刷新图形repaint 方法punlicvoidrepaint punlicvoidrepaint intx intx intwidth intheight 用于刷新图形 参数指定刷新图形的区域 程序调用repaint 方法时 系统将自动调用paint方法时 重新在组件上绘制图形 所以需要刷新图形时 程序中已一般不需要重新写repaint 方法 8 2 4repain 方法 例12 3applet应用程序的执行介绍两个类 类名 Date创建一个实例DatetimeNow newDate 获得系统当前日期类名Font创建一个实例FontmsgFont newFont TimesRoman Font ITALIC 20 指定20时号 斜体的TimesRoman字 8 2 5applet应用举例 看下面的例子 想一想生命周期的四个方法哪去了 importjava awt importjava util Date publicclassshowDateextendsjava applet Applet DatetimeNow newDate FontmsgFont newFont TimesRoman Font ITALIC 30 publicvoidpaint Graphicsg g setFont msgFont g setColor Color blue g darwString timeNow toString 5 50 Applet小应用程序 文件名为HelloApplet java html中有关的代码CODEBASE的作用当class文件与起始页文件不在同一个目录下时 使用CODEBASE说明 CODEBASE myjava class 在起始页中加入applet CODEBASE myjava class ALIGN HSPACE VSPACE Javaapplet 其它文字 其它文字 vspace hspace vspace 100hspace 100 8 3Html和applet HTML简介它由WWW服务器提供 在网络上传输 并自动由浏览器解释执行HTML文件的一般格式AnAppletExample 和标明Applet的起始和结束 WIDTH和HEIGHT为Applet窗口的宽度和高度 象素 HTML中applet标记的使用 alternateHTML 8 3Html和applet CODEBASE codebaseURL指明Applet类文件所在URL基址 getCodeBase 获取该属性 getCodeBase 获得Applet的URL基地址 getDocumentBase 获得HTML的URL基地址CODE appletFile指明需要运行的Applet类文件 class文件 该文件是与codebaseURL相关的NAME appletInstanceName给出了Applet类运行时的实例名 这使得同处于一个页面的不同Applet之间能够相互通信 方法getAppletContext 可以得到同一个方页面中其它Applet类 HTML中applet标记的意义 ALT alternateText如果浏览器支持Applet但不能运行它 就显示alternateText中所给出的文字 否则就忽略它 WIDTH pixelsHEIGHT pixelsApplet在浏览器中所显示的高度和宽度 以象素为单位 ALIGN alignmentApplet在浏览器中显示时的对齐方式 其含义与效果与图片在HTML中的一样 其取值有 left right top texttop middle absmiddle baseline bottom absbottom HTML中applet标记的意义 属性可以使得Applet能够从页面中获取所需的参数 Applet可方法getParameter 获取属性指定的参数 属性的作用与应用程序中main 方法里参数Stringargs 的作用是一样的 一个好的小应用程序 应该提供用户能够设置外部参数的功能 以使得用户能够根据自己的需要来应用它 方法getParameterInfo 可以得到有关属性的说明信息 HTML中applet标记的意义 例8 4applet获得参数 publicclassAppletParaextendsApplet Strings1 s2 publicvoidinit s1 getParameter p1 s2 getParameter p2 publicvoidpaint Graphicsg g drawString s1 10 10 g drawString s2 10 30 AppletParameterTest 两个步骤 在Applet类中 s1 getParameter p1 s1 getParameter p2 在页面中设置Applet参数 图形操作paint update 和repaint Applet本身是一个AWT组件 它具有一般AWT组件的图形绘制功能 Applet中有三个显示相关的方法paint update 和repaint Applet的显示更新是由一个AWT线程来控制完成的 它主要负责两种显示更新情况第一是显示 显示区域被遮盖 调整大小 最大最小化等 这种情况随时会发生 需要系统调用paint 方法 第二是程序需要重画显示区域 添加一些新的显示内容 需要程序调用repaint 方法 8 4图形操作 paint 进行绘图的具体操作 必须由程序员重写update 用于更新图形 先清除背景 前景 再调用paint repaint 用于重绘图形 在组件外形发生变化 即大小改变或位置移动时 repaint 方法立即被系统自动调用 而实际上repaint 方法是自动调用update 方法 图形操作 Graphics Font和Color类的使用 在paint 方法中有一个Graphics类参数 它是画图的关键 它支持两种绘制基本的绘图画点 线 矩形 文字等 画图象在进行基本画图时 可以设定所需的颜色和字体等 这需要用到Font FontMetrics和Color三个类 图形坐标系统任何与绘图有关的操作第一个要用的是java awt Graphics类 Graphics类的对象不是由new产生的 而是由系统或其他方式直接将生好的Graphics对象当作方法的参数 再交给程序设计者去处理 例如 paint Graphicsg Graphics拥有的绘图方法 矩形 椭圆 多边形 填充图形等 所有方法都是void类型的 drawLine int int int int 画直线 起点坐标 终点坐标drawRect int int int int 画矩形 左角坐标 宽 高drawRoundRect int int int int int int 画圆角矩形 左角坐标 X宽 Y高 深度X 深度Ydraw3DRect int int int int boolean 画3D矩形 左角坐标 宽X 高Y turedrawOval int int int int 画椭圆 中心坐标 长轴 短轴drawArc int int int int int int 画弧 左角坐标 宽 高 起始角 终止角 drawPolyline int int int 画折线 各点的X坐标 Y坐标 折线数drawPolygon int int int 画多角形 各点的X坐标 Y坐标 边数drawPolygon Polygon 画多角形 定义好的多角形对象 例12 7l利用paint 方法绘制基本图形 importjava awt importjava applet publicclassDrawBasicextendsApplet publicvoidpaint Graphicsg intpx 30 50 60 40 20 intpx1 75 95 105 85 65 intpy 140 140 160 175 160 intp 4 g drawString 用Graphics写字和画图的基本方法 20 20 g drawOval 50 35 40 20 g fillOval 95 35 40 20 g drawOval 140 30 30 30 g drawLine 20 60 200 60 g setColor Color blue g drawRect 20 70 20 30 g fillRect 60 70 20 30 g drawRoundRect 90 70 20 30 25 18 g setColor Color red g drawArc 20 110 40 40 0 180 g fillArc 80 110 40 40 0 180 g drawPolygon px py p g setColor Color cyan g fillPolygon px1 py p 矩形的左上角坐标 其长与宽 Fillxxx 用前景色填充的图形 在java中 绘图方法不只是可以绘制图形 还可以输出文本 通过设定字体的字型 风格 大小来实现文本输出的多样性 Java提供了三种文字输出方法 voiddrawBytes byteb intOffset intn intx inty voiddrawChars charc intOffset intn intx inty voiddrawString Strings intx inty 在指定的位置 x y 输出字 Offset是数组的起始下标 n是输出的个数 drawString 是最常用的方法 这三种方法都是使用当前颜色和字体绘制字符串 字符字节例 g drawString Thisisatest 5 10 8 5文本输出 设置字体需要使用java awt Font类创建一个Font对象 Font的常用构造方法 Font 字体名或逻辑字体名 字型 字号 字体名是运行程序的操作系统适用的字体 字型为Font类声明了的静态常量 有下列3种 Font PLAIN Font BOLD Font ITALIC 分别表示正常 粗体 斜体和粗斜体 下面的例程演示设置颜色和字体的方法12 8Font类举例 8 5 2字体设置 importjava awt importjava applet publicclassFontDemoextendsApplet Fontfont1 newFont KunstlerScript Font BOLD 24 Fontfont2 newFont Arial Font ITALIC 18 publicvoidpaint Graphicsg g setColor Color red g setFont font1 g drawString KunstlerScriptBOLD24 20 30 g setFont font2 g drawString ArialITALIC18 20 60 g setFont newFont CooperBlack Font PLAIN 12 g drawString CooperBlackPLAIN12 20 90 g setColor Color blue g setFont newFont 隶书 Font BOLD 28 g drawString 字体是隶书28号字 20 130 g setFont newFont 华文行楷 Font BOLD 20 g drawString 字体是华文行楷20号字 20 160 g setFont newFont 华文行楷 Font BOLD 20 g drawString 字体是华文行楷20号字 20 160 g setFont newFont 华文彩云 Font PLAIN 14 g drawString 字体是华文彩云14号字 20 190 由Graphics类方法setFont 设置输出字体 Font类提供类一下常用的方法 通过字体类提供的方法可以获得各项字体信息 获取图形类对象当前的字体属性 Fontcur font g getFont 字体信息保存在字体类对象cur font中 StringgetName 获取Font对象的字体名信息StringgetFamily 获取Font对象的字体族信息intgetStyle 获取Font对象的风格信息 整数值intgetSize 获取Font对象的字号信息 整数值 8 5 2字体设置 booleanisPlain 是否正常字体booleanisItalic 是否斜体booleanisBold是否黑体 创建了字体对象font后 用g setFont font 设置使用新字体 直到再次使用setFont前都有效 在实际应用时最好先保存原有的颜色和字体设置 在使用完了后再恢复 drawString方法只使用起点的坐标 下一行显示在什么位置很难精确定位 要想精确定位 我们需要知道字符串显示的长度 象素 以控制水平方向的尺寸 知道字体的高度以控制垂直方向的尺寸 8 5 2字体设置 文字使用默认的字体和大小和默认的黑色 不免单调 使用不同的字体字号和选择不同的颜色是美化网页必不可少的 设置背景色的是方法继承自Applet的 语法为 setBackground newColor int int int 即它的参数是一个Color对象句柄 设置前景色的方法是属于Graphics的 即设置Graphics的绘图色 语法为 g setColor Color对象 8 5 3颜色设置 Java通过类Color来处理颜色 设置颜色有两种方法 使用系统定义的Color类的颜色常量 共13种颜色 Color red Color green Color blue Color yellow Color gray 获取当前使用的颜色信息 获取图形类对象的颜色属

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论