知识大全 Java Applet 编 程 技 巧

Posted 文字

篇首语:吾生也有涯,而知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java Applet 编 程 技 巧相关的知识,希望对你有一定的参考价值。

Java Applet 编 程 技 巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   Java Applet 概 述     Java Applet 程 序 分 为 两 类 Java 小 程 序(Applet) 和Java 应 用 程 序(Application) 这 两 类 程 序 是 有 区 别 的 Java Applet 嵌 入 在WWW 的 页 面 作 为 页 面 的 组 成 部 分 被 下 载 并 能 运 行 在 实 现Java 虚 机 器(JVM) 的Web 浏 览 器 中 Java 的 安 全 机 制 可 以 防 止 小 程 序 存 取 本 地 文 件 或 其 他 安 全 方 面 的 问 题 而 一 个Java 应 用 程 序 运 行 于Web 浏 览 器 之 外 没 有Applet 运 行 时 的 诸 多 限 制 另 外 两 者 程 序 设 计 上 的 最 大 区 别 在 于 Java Applet 没 有 主 程 序 而Java 应 用 程 序 一 定 要 有 主 程 序 在Java 中 每 个applet 都 是 由Applet 的 子 类 来 实 现 开 发 人 员 自 定 义 的applet 通 过 重 载Applet 的 几 个 主 要 成 员 函 数 完 成 小 应 用 程 序 的 初 始 化 绘 制 和 运 行 这 些 函 数 是init( ) paint( ) start( ) stop( ) 和destory( )        一 个applet 的 生 命 周 期 与Web 页 面 有 关 当 首 次 加 载 含applet 的 页 面 时 浏 览 器 调 用init( ) 方 法 完 成applet 的 初 始 化 然 后 调 用paint( ) 或start( ) 方 法 绘 制 或 启 动 程 序 当 用 户 离 开 页 面 时 浏 览 器 调 用stop( ) 方 法 停 止 小 程 序 运 行 若 用 户 关 闭 浏 览 器 将 使applet 停 止 运 行 浏 览 器 调 用destory( ) 方 法 终 止 使 小 应 用 程 序 有 机 会 释 放 其 存 在 期 间 锁 定 的 资 源 只 要 用 户 不 关 闭 浏 览 器 重 新 加 载 页 面 浏 览 器 则 只 调 用start( ) 方 法 和paint( ) 方 法 重 新 绘 制 并 运 行 小 程 序 Applet 生 命 周 期 如 图 所 示        扩 展 小 程 序 基 类 支 持 多 线 程     通 常 情 况 下 设 计 小 程 序 是 为 了 给 主 页 增 加 交 互 性 使 页 面 更 加 生 动 活 泼 因 此 那 些 真 正 有 用 小 程 序 如 动 画 实 时 更 新Internet 服 务 器 信 息 回 取 一 般 娱 乐 等 通 常 都 是 持 续 运 行 的 即 小 程 序 的 逻 辑 主 体 存 在 著 无 限 循 环 这 个 逻 辑 主 体 不 宜 放 在 几 个 浏 览 器 调 用 方 法 中 如init( ) paint( )   start( ) 等 这 是 因 为 隐 含 情 况 下 小 程 序 所 有 主 逻 辑 都 采 用 单 一 线 程 当 浏 览 器 调 用 方 法 中 出 现 死 循 环 则 程 序 控 制 不 返 回 如 果 用 户 换 到 另 一 个 页 面 之 后 小 程 序 还 在 运 行 就 会 浪 费 处 理 器 资 源 你 可 以 做 一 个 实 验 使 用 小 程 序 查 阅 器 运 行 小 程 序 你 会 发 现 查 阅 器 本 身 完 全 停 止 作 用 因 为 它 要 等 到 调 用 函 数 返 回 后 才 能 继 续 处 理 其 他 事 情( 如 响 应 菜 单) 显 然 这 个 逻 辑 主 体 必 须 放 在 其 他 地 方 解 决 方 法 是 在 小 程 序 框 架 中 加 入 线 程 把 逻 辑 主 体 放 在 线 程run( ) 方 法 中 只 在 浏 览 器 调 用 方 法start( ) 中 生 成 线 程 而 在  stop( ) 中 终 止 线 程 运 行 这 样 当 用 户 不 查 阅 时 不 会 占 用 处 理 器 资 源 图 表 示 浏 览 器 小 程 序 和 线 程 之 间 的 关 系        由 于 浏 览 器/ 小 程 序/ 线 程 是 所 有 浏 览 器 都 采 用 的 模 型 而Java applet Applet 类 本 身 并 不 支 持 线 程 在 实 际 使 用 中 为 方 便 操 作 我 们 可 以 派 生Applet 类 生 成 一 个 支 持 线 程 的 子 类 今 后 再 编 写applet 时 就 可 以 直 接 从 子 类 中 派 生 程 序 逻 辑 主 体 放 在run( ) 方 法 中 将 线 程 控 制 隐 藏 起 来 这 个 子 类 如 下     import Java applet *;  import Java awt *;  class MultiThreadApplet extends Applet implements Runnable   Thread thisThread;  Public void start( )    if(thisThread==null)    thisThread=new Thread(this);   thisThread start( );     public void stop( )    if (thisThread! =null)   thisThread stop( );  thisThread=null;     public void run ( )      由 于run( ) 是 接 口Runnable 的 抽 象 方 法 所 以 在MultiThreadApplet 类 中 也 需 要 进 行 定 义 只 不 过 内 容 为 空 下 面 的 例 子 显 示 如 何 使 用 这 个 类 程 序 包 含 一 个 无 限 循 环 累 加 操 作 并 将 结 果 显 示 在 屏 幕 上     import java awt *;  public class counter extends MultiThreadApplet  int Counter;  public void run( )   while(true)     counter++;     repaint( );     public void paint(Graphics g)   g drawString(string valueof(counter) );        很 显 然 这 个 小 程 序 对 线 程 的 操 作 已 被 隐 藏 在Multi ThreadApplet 中             解 决 动 画 中 的 一 些 问 题     动 画 的 本 质 就 是 运 动 的 图 形 一 系 列 连 续 显 示 的 静 止 图 形 会 给 我 们 一 种 连 续 动 画 的 假 象 只 要 动 画 速 度 足 够 快 则 分 散 的 静 止 图 形 就 会 合 并 成 一 个 连 续 运 动 的 流 程        绘 制 动 画 十 分 简 单 只 需 遵 照 以 下 三 步 即 可 ( ) 擦 去 整 个 小 程 序 绘 图 区 ( ) 重 画 动 画 背 景 ( ) 在 新 的 位 置 绘 制 图 形 但 是 当 动 画 连 续 帧 之 间 运 动 和 颜 色 不 连 续 时 就 会 发 生 闪 烁 现 象( 例 子 略) 问 题 出 在 小 程 序 区 的 屏 幕 刷 新 上 有 两 种 方 法 可 以 防 止 动 画 闪 烁 第 一 种 方 法 是 只 做 局 部 刷 新 即 每 次 只 擦 除 改 变 的 部 分 例 如 如 果 要 绘 制 一 幅 飞 行 的 星 空 动 画 每 次 刷 新 操 作 先 擦 去 前 一 位 置 的 星 星 再 在 新 的 位 置 绘 制 一 个 但 是 如 果 动 画 比 较 复 杂 运 动 部 分 重 叠 较 多 则 局 部 刷 新 操 作 很 繁 琐 也 影 响 程 序 运 行 速 度 在 这 种 情 况 下 可 以 用 另 外 一 种 方 法( 双 缓 存) 来 解 决 闪 烁 问 题 它 的 核 心 思 想 是 在 屏 幕 外 完 成 一 帧 的 全 部 动 画 然 后 把 最 后 绘 制 完 的 帧 显 示 在 小 程 序 屏 幕 上 过 程 如 图 所 示      示 例 程 序 如 下     import java awt *;  public class Ball extends MultiThreadApplet   Image ball=null;  Image applet=null;  Graphics appletG ballG;  Public void run( )   If(ball= =null)     Applet=createlmage(bounds( ) width bounds( )                 Height);     Ball=create Image( );     AppletG=applet getGraphics( );     BallG=ball getGraphics( );     BallG setColor(Color gray);     BallG drawOral( );    For(int x= ;x <400;x++) Double angle="((double)x)/20;" Int y="(int)(Math.abs(Math.sin(angle))*80);" AppletG.clearRect(0,0,bounds( ).width.bounds( ), Helght); DrawBackground(appletG); AppletG.drawImage(ball,x.80-y,this); This.getGraphics( ).drawImage(applet,0,0,this); Try Thread.sleep(25); catch(Exception ignored) private void drawBackground(Graphics g) for(int I="0;I" < 1;I++) g.drawLine(0.i*10,400,I*10);      小 程 序 首 先 用createImage( ) 取 得 与 小 程 序 大 小 完 全 相 同 的 屏 外 图 形 缓 存, 赋 给 变 量applet, 然 后 得 到 缓 存 的 绘 图 对 象appletG。tW.cha138. 以 后 对 帧 的 刷 新 操 作 过 程都 是 针 对appletG。 这 包 括 清 除 帧、 绘 制 背 景、 在 新 位 置 绘 制 图 形。最后再用drawImage ( ) 方 法 把 缓 存 复 制 到 小 程 序 的 屏 幕 显 示 区。 运 行 这 个 小 程 序, 你 会 发 现 动 画 非 常 平 滑, 不 存 在 闪 烁 现 象。        除 了 闪 烁 之 外, 如 果 动 画 过 于 复 杂, 帧 速 率 就 可 能 降 低。 若 动 画 降 到 每 秒20, 帧 是 动 画 会 出 现 间 断 现 象 影 响 显 示 效 果。 因 此 有 必 要 优 化 动 画 速 度, 下 面 列 出 了 一 些 可 行 的 方 案;(1) 画 得 尽 可 能 少;(2) 用 较 快 的 绘 图 算 法;(3) 用 颜 色 循 环 等 技 巧 来 绘 画 某 一 部 分;(4) 用 图 案 来 表 示 细 节;(5) 用 定 点 整 数 进 行 三 维 计 算;(6) 用 查 询 的 预 先 计 算 结 果 来 处 理 复 杂 算 法。            4. 缩 短 小 程 序 装 入 时 间     真 正 功 能 性 的 小 程 序 本 身 并 不 小, 这 就 意 味 著 小 程 序 从Internet 上 下 载 需 要 花 很 多 时 间。 随 著 小 程 序 的 普 及, 越 来 越 多 的Internet 频 带 被 用 于 从 各 地 的 服 务 器 向 客 户 端Web 浏 览 器 传 送 这 些 小 程 序, 因 此 响 应 时 间 进 一 步 下 降。 为 了 缩 短 小 程 序 下 载 和 装 入 时 间 cha138/Article/program/Java/hx/201311/25949

相关参考

知识大全 Java2下Applet数字签名

Java2下Applet数字签名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自从Java技术

知识大全 Java Script与Java Applet的综合运用(一)

JavaScript与JavaApplet的综合运用(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Java Script与Java Applet的综合运用(二)

JavaScript与JavaApplet的综合运用(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 利用Java Applet播放声音文件

利用JavaApplet播放声音文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用Appl

知识大全 优化Java Applet的加载过程

优化JavaApplet的加载过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家知道在ja

知识大全 慎防恶意的Java Applet

慎防恶意的JavaApplet  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在传统的应用开发中

知识大全 Java Applet编程之实现显示图像

JavaApplet编程之实现显示图像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaA

知识大全 Java Applet编程小技巧之文字显示

JavaApplet编程小技巧之文字显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  显示文字

知识大全 构建你的第一个Java Applet

构建你的第一个JavaApplet  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍    M

知识大全 Java Applet编程之声音和图像的协调

JavaApplet编程之声音和图像的协调  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在有些