湖南科技职业学院软件职业技术学院 教师课时授课计划 教师姓名: 授课班级: 授课课时:6 课程名称:JAVA程序设计 第 3 课 教学循环号:3-1 课题 创建基于WEB的JAVA程序  各教学环节课时分配 讲授  4 课时   有指导的实践  1 课时   独立实践  1 课时  教学内容 1、创建基于WEB的JAVA程序 2、显示图像  重点 创建基于WEB的JAVA程序  难点 创建基于WEB的JAVA程序  教具 多媒体  作业 独立实践  授课日期 (校历) 第 2 周星期 3 第 1-2节   第 2 周星期 4 第 1-4 节   第 周星期 第 节   第 周星期 第 节  课后小结 通过本课的学习,学生掌握了: 理解APPLET 理解APPLET的生命周期 掌握javax.swing.JApplet包的使用,能够编写简单的APPLET  详细教学过程附后 详细教学过程: 教学目标陈述(5分钟) 创建基于Web 的Java 程序 显示图像 了解基于Web的Java程序(10分钟) 你可使用 applets以加入动态方面,如:加入Web页面的动画和声音 Applets 由于在本地上执行减少了Web服务器的负载 三、实例分析 3.D.1(45*3分钟) 1、问题陈述 CellGO 要建创基于Web 的程序。创建的界面应用要访问客户材料,现在需要在Internet上部署。把现有的应用改变成基于 Web的。 2、确定任务 识别Web 上部署Java 程序的方法 识别在基于Web 的Java 程序中初始化控件的机制 识别HTML 文件的名和位置 修改现有的应用代码 保存和编译程序 编码HTML 文件 保存HTML 文件 执行程序和检查输出 3、分析解决问题 识别Web 上部署Java 程序的方法 JApplet 类: The javax.swing包包含 JApplet 类,它有 20种以上的方法用来显示 图象、放音频文件、及当用户与applet 交互时做出响应 applet在Web 浏览器中加载的Web 页面上运行 applet的生命周期是用方法:init(), start(), stop(), 及 destroy()实现的 结果: 以前开发的程序是应用而不是applet。为在Web上部署此程序,把其框架转换为applet 识别在基于Web 的Java 程序中初始化控件的机制。 小应用程序的生命周期 init()方法是在applet在第一次装入计算机内存时被调用 start()方法接在init()方法之后被调用和每当applet接收聚焦时被调用 每当applet释放聚焦时,调用stop()方法 destroy()方法在用户移到另一个Web页面时被调用  java.awt.Graphics 类 它是是抽象类,表示applet 的显示区域 它用于在applet 的显示区域上画图 提供了一些方法如: drawString(String test, int x, int y) drawLine(int x1, int y1, int x2, int y2) drawRect(int x1, int y1, int width, int height) drawOval(int x1, int y1, int width, int height) update()方法 它取Graphics 类对象为参数 当 applet区域要更新时调用 它清除屏幕和调用paint() 方法 paint() 方法 在绘画区域内画applet的所有图形 当applet第一次在屏幕上显示和每当applet接收聚焦时,自动地调用此方法 通过调用repaint()方法触发 paint 例子 import javax.swing.*; import java.awt.*; public class DisplayApplet extends JApplet { public void paint(Graphics g) { g.drawString(“This is displayed by the paint method”, 20, 20); } } 输出 结果: init() 是要执行的第一个方法,可用这方法初始化基于Web Java 程序中的控件 识别HTML 文件中名和位置 结果: HTML 文件保存为<drive:>\Semester\Batchcode\Groupname\Java\Customer.html 修改现有应用代码 import javax.swing.*; public class Customer extends JApplet { JPanel panelObject; /* Variables for labels and data entry controls */ public void init() { panelObject=new JPanel(); getContentPane().add(panelObject); /* Initialise and add the controls to the panel */ } } 保存和编译程序 编写HTML 文件的代码 Applet标签: 在HTML 文档的BODY 标签内写出APPLET 标签 Applet标签的元素: CODE=“class 文件的名” CODEBASE=“class 文件的路径” HEIGHT=“apple 的最大高度, 以象素为单位” WIDTH=“applet 的最大宽度, , 以象素为单位” VSPACE=“applet 与HTML,的其余部分之间的垂直空间,以象素为单位” HSPACE=“applet 与HTML,的其余部分之间的水平空间,以象素为单位” ALIGN=“applet与Web页面的其余部分对齐” ALT="如果浏览器不支持applets,显示可选的文本" APPLET 标签最常用的属性是 CODE, HEIGHT, WIDTH, CODEBASE, 及 ALT 代码: <HTML> <APPLET CODE = "Customer.class" HEIGHT = 300 WIDTH = 300 > </APPLET> </HTML> 保存HTML 文件 动作: 保存文件为<drive:>\Semester\Batchcode\Groupname\Java\Customer.html 4、执行验证 执行程序 appletviewer 工具: 是一个运行applets的程序的工具,没有运行Web浏览器的开销 动作: 在命令提示处,打入AppletViewer Customer.html 检查输出: 结果: 屏幕类似于前面应用中创建的框架,应是可见的 3.D.2(45分钟) 1、问题陈述 公司的标志必须在显示客户材料的applet 上显示。 2、确定任务 识别图象的类型、位置、及名 识别分配给此图象的许可 识别图象的位置 识别所需的控件和它们的变量名 创建策略 编写代码以插入图象 保存、编译和执行程序 在applet上检查图象是否显示 3、分析解决问题 识别图象的类型、位置、及名 图象是人或事的可视模仿或表示 图形交换格式 (GIF) 是Web上图象的事实上的标准。如果图象是行绘画的,用此格式 联合图象专家组(JPEG) 格式当图象是照片、医疗图象、或复杂的照片插图时有用 Java 支持 GIF 和 JPEG 图象格式 图象的性质是: 高度 宽度 图象格式 位置–applet中显示的图象可驻留在放置在本地文件系统或在远程文件系统上 大小– .可以是(2D) 或 (3D)的图象 结果: GIF 格式优越于 JPEG,此图象的类型是GIF 此图象的位置在<drive:>\Semester\Batchcode\Groupname\CellGO 此图象的名字是 CellGO.gif 识别分配给此图象的许可 JDK中许可: 许可是任何系统资源(如文件、网络、及AWT)所提供的权利 为从applet访问任何资源,必须显式地授予许可 可授予的许可是读、写、执行、及删除 Java 中策略文件: Java中,策略对象指出应用环境中资源可用的许可,如:读、写。 用户的缺省策略保存在用户主目录的.java.policy 文件中 结果: 授予 Read 和Execute 许可 识别图象的位置 结果: 它应是applet的第一个内容 识别所需的控件和它们的变量名 显示图象所需的控件: 显示图象所需的控件是标号和图标。 Icon 接口: Icon 接口定义了提供应用图标的类实现的一些方法 ImageIcon 类 ImageIcon类实现Icon 接口中定义的方法 ImageIcon 构造符取图象文件的名为它的变元 结果: Icon logoImage JLabel logoimagePosition 创建策略 可用JDK 1.2.的PolicyTool 实用程序创建策略。使用此实用程序来设置资源的许可 动作: 打开命令提示窗口 打入PolicyTool 并按Enter 在PolicyTool 对话框中。点击Add Policy Entry 按钮 点击Add Permission 按钮 点击Permission 下拉式列表并选择FilePermission 指出Target Name 入口为CellGO.gif 从Action 列表中选择读和执行 点击 OK 点击 Done 从File菜单中选择Save As 在\Profiles\<Username>目录中保存.java.policy 文件 编写插入图象的代码 import javax.swing.*; public class Customer extends JApplet { /* Variables for panel, labels, and data entry controls */ JLabel logoimagePosition; public void init() { Icon logoImage=new ImageIcon(“<path>\CellGo.gif”); logoimagePosition=new JLabel(logoImage); panelObject.add(logoimagePosition); } } 4、执行验证 保存和编译程序 执行程序 四、指导性练习(45分钟) 3.P.1 1、问题陈述 为获取商人材料而创建的应用不可部署在公司的本地intranet上。改变现有的应用使它是基于Web的。带已打入的商人材料的框架应在关闭此applet 时显示。 2、问题分析 3、验证 五、小结 (10分钟) 六.独立实践(45分钟) 布置学生进行独立实践3.MR.1、3.MR.2 根据完成情况进行少量讲解