WEB开发网      濠电姷鏁告繛鈧繛浣冲洤纾瑰┑鐘宠壘閻ょ偓銇勯幇鍫曟闁稿鍠愰妵鍕冀閵娧佲偓鎺楁⒒閸曨偄顏柡宀嬬畱铻e〒姘煎灡绗戦梻浣筋嚙濮橈箓顢氳濠€浣糕攽閻樿宸ュΔ鐘叉啞缁傚秹宕滆绾惧ジ寮堕崼娑樺缂佹宀搁弻鐔风暋閻楀牆娈楅梺璇″枓閺呯姴鐣疯ぐ鎺濇晝闁靛牆妫欓蹇旂節閻㈤潧浠﹂柛銊ョ埣楠炴劙骞橀鑲╋紱闂佽宕樼粔顔裤亹閹烘挸浜归梺缁樺灦閿曗晛螞閸曨垱鈷戦柟鑲╁仜婵″ジ鎮楀☉鎺撴珖缂侇喖顑呴鍏煎緞濡粯娅囬梻浣瑰缁诲倿寮绘繝鍥ㄦ櫇闁稿本绋撻崢鐢告煟鎼淬垻鈯曢柨姘舵煟韫囥儳绋荤紒缁樼箖缁绘繈宕橀妸褌绱濋梻浣筋嚃閸ㄤ即宕弶鎴犳殾闁绘梻鈷堥弫鍌炴煕閳锯偓閺呮瑧妲愬Ο琛℃斀闁绘劕妯婇崵鐔封攽椤旇棄鍔ら摶鐐烘煕閺囥劌澧柛娆忕箻閺屽秹宕崟顒€娅g紓浣插亾濠㈣泛顑囩粻楣冩煙鐎涙ḿ绠橀柨娑樼У椤ㄣ儵鎮欓鍕紙闂佽鍠栫紞濠傜暦閹偊妲诲┑鈩冨絻椤兘寮诲☉銏犖╅柕澶堝労閸斿绱撴担绋库偓鍝ョ矓瑜版帒鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘 ---闂傚倸鍊烽悞锔锯偓绗涘厾娲煛閸涱厾顔嗛梺璺ㄥ櫐閹凤拷
开发学院WEB开发Jsp Java Applet编程技巧 阅读

Java Applet编程技巧

 2008-01-05 19:16:47 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄妞ゆ劗鍘ч埥澶娢熼柨瀣偓濠氭⒑瑜版帒浜伴柛鎾寸☉閳绘柨顫濋懜纰樻嫼闂佸憡绋戦オ鏉戔枔閺冣偓缁绘稓浠﹂崒姘瀳闂佸磭绮幑鍥嵁鐎n亖鏀介柟閭﹀墯椤斿倹淇婇悙顏勨偓鏍ь潖婵犳艾鍌ㄧ憸蹇涘箟閹绢喗鏅搁柨鐕傛嫹
核心提示:陈 冲 1. java Applet 概 述 Java Applet 程 序 分 为 两 类:Java 小 程 序(Applet) 和Java 应 用 程 序(application), 这 两 类 程 序 是 有 区 别 的,Java Applet编程技巧,Java Applet 嵌 入 在WWW 的

  陈 冲

--------------------------------------------------------------------------------



1. 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 生 命 周 期 如 图1 所 示。





2. 扩 展 小 程 序 基 类 支 持 多 线 程
通 常 情 况 下, 设 计 小 程 序 是 为 了 给 主 页 增 加 交 互 性, 使 页 面 更 加 生 动 活 泼。 因 此, 那 些 真 正 有 用 小 程 序, 如 动 画、 实 时 更 新Internet 服 务 器 信 息 回 取、 一 般 娱 乐 等 通 常 都 是 持 续 运 行 的, 即 小 程 序 的 逻 辑 主 体 存 在 着 无 限 循 环。 这 个 逻 辑 主 体 不 宜 放 在 几 个 浏 览 器 调 用 方 法 中, 如init( )、paint( )、
start( ) 等。 这 是 因 为 隐 含 情 况 下, 小 程 序 所 有 主 逻 辑 都 采 用 单 一 线 程。 当 浏 览 器 调 用 方 法 中 出 现 死 循 环, 则 程 序 控 制 不 返 回。 如 果 用 户 换 到 另 一 个 页 面 之 后 小 程 序 还 在 运 行, 就 会 浪 费 处 理 器 资 源。 你 可 以 做 一 个 实 验, 使 用 小 程 序 查 阅 器 运 行 小 程 序, 你 会 发 现 查 阅 器 本 身 完 全 停 止 作 用, 因 为 它 要 等 到 调 用 函 数 返 回 后, 才 能 继 续 处 理 其 他 事 情( 如 响 应 菜 单)。 显 然, 这 个 逻 辑 主 体 必 须 放 在 其 他 地 方。 解 决 方 法 是 在 小 程 序 框 架 中 加 入 线 程, 把 逻 辑 主 体 放 在 线 程run( ) 方 法 中。 只 在 浏 览 器 调 用 方 法start( ) 中 生 成 线 程, 而 在
stop( ) 中 终 止 线 程 运 行, 这 样 当 用 户 不 查 阅 时 不 会 占 用 处 理 器 资 源。 图2 表 示 浏 览 器、 小 程 序 和 线 程 之 间 的 关 系。



由 于 浏 览 器/ 小 程 序/ 线 程 是 所 有 浏 览 器 都 采 用 的 模 型, 而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 类 中 也 需 要 进 行 定 义, 只 不 过 内 容 为 空。 下 面 的 例 子 显 示 如 何 使 用 这 个 类。

Tags:Java Applet 编程技巧

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接