00000003.htm
来自「水木清华BBS」· HTM 代码 · 共 116 行
HTM
116 行
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: zixia (独守空房の比特仙子), 信区: Java <BR>标 题: 来自 JAVA 的传说14.2 <BR>发信站: BBS 水木清华站 (Tue May 12 21:00:44 1998) <BR> <BR> 来 自 Java 的 传 说 (14) <BR> <BR> 显 示 图 形 <BR> <BR> 加 载 了 图 形 , 怎 样 把 它 按 要 求 在 程 序 里 显 示 出 来 呢 ? Graphics <BR>类 里 提 供 了 drawImage 这 个 方 法 把 Image 对 象 在 程 序 里 绘 制 出 来 。 如 <BR>果 只 是 按 原 样 显 示 图 形 , 就 可 以 这 样 写 : <BR> g.drawImage ( picture , x , y , this ); <BR>其 中 picture 是 一 个 Image 对 象 , (x , y) 是 图 形 的 坐 标 , this 指 的 是 g 这 个 <BR>Graphics 对 象 。 <BR> 现 在 看 到 的 图 象 已 经 相 当 不 错 了 , 不 过 我 们 还 可 以 在 图 形 显 <BR>示 时 增 加 一 些 有 趣 的 处 理 。 你 可 以 改 变 图 形 的 背 景 , 还 可 以 任 意 <BR>缩 放 图 形 。 看 下 面 这 两 条 语 句 就 是 这 样 做 的 : <BR> g.drawImage ( picture , x, y, clr , this ); <BR> g.drawImage ( picture , x, y, width, height , this ); <BR>其 中 clr 指 定 了 显 示 图 片 的 背 景 色 , width 和 height 指 定 了 图 片 输 出 的 <BR>大 小 。 <BR>* 设 置 图 片 的 背 景 色 效 果 时 , 只 有 图 片 具 有 透 明 属 性 才 能 看 得 出 <BR>来 , 如 果 设 置 了 底 色 , 而 不 显 示 , 说 明 你 所 加 载 的 图 片 是 不 透 明 <BR>的 。 <BR>讲 了 这 么 多 , 编 个 程 序 看 看 吧 ! <BR>程 序 16.5 <BR> import java.awt.Image; <BR> import java.awt.Graphics; <BR> import java.awt.Color; <BR> public class picture extends java.applet.Applet <BR> { <BR> Image picture1,picture2; // 定 义 两 个 Image 类 型 的 对 象 <BR> public void init( ) // 加 载 图 片 , 把 sunjava.gif 加 载 到 picute1 , <BR>window.jpg 加 载 到 picture2 <BR> { <BR> picture1 = getImage(getDocumentBase( ),"sunjava.gif"); <BR> picture2 = getImage(getDocumentBase( ),"window.jpg"); <BR> } <BR> public void paint(Graphics g) <BR> { <BR> g.drawImage(picture1,0,0,this); // 以 ( 0 , 0 ) 为 左 上 角 按 原 <BR>样 显 示 picture1 <BR> // 以 ( 0 , 240 ) 为 左 上 角 , 将 picture1 拉 伸 到 200 × <BR>100 , 然 后 再 显 示 <BR> g.drawImage(picture1,0,240,200,100,this); <BR> g.drawImage(picture2,220,0, this); // 以 ( 220 , 0 ) 为 左 上 角 <BR>按 原 样 显 示 picture2 <BR> } <BR> } <BR> 该 程 序 的 HTML 文 件 如 下 所 示 : <BR> 编 辑 完 以 后 , 顺 利 通 过 编 译 就 可 以 运 行 了 , 运 行 结 果 如 图 16.8 <BR>所 示 : <BR> <BR>图 16.8 程 序 16.5 运 行 结 果 <BR>这 里 请 大 家 注 意 加 载 图 片 的 这 两 条 语 句 <BR> picture1 = getImage(getDocumentBase( ),"sunjava.gif"); <BR> picture2 = getImage(getDocumentBase( ),"window.jpg"); <BR> 其 中 getDocumentBase( ) 给 出 了 包 含 这 个 Applet 的 HTML 的 URL , 这 <BR>是 什 么 意 思 呢 ? 也 就 是 说 它 指 明 了 你 的 Java 程 序 在 主 机 上 存 放 的 位 <BR>置 , 按 照 这 个 路 径 , 系 统 才 能 找 到 你 所 加 载 的 图 片 。 <BR> 为 什 么 要 用 getDocumentBase( ) 呢 ? 我 直 接 告 诉 它 不 就 行 了 吗 ? <BR>可 是 你 想 过 没 有 , 如 果 你 把 整 个 目 录 树 挪 了 地 方 , 而 不 修 改 程 序 <BR>里 的 路 径 , 系 统 还 能 按 你 所 给 的 绝 对 路 径 找 到 图 片 吗 ? 当 然 不 能 <BR>。 所 以 这 里 用 了 getDocumnetBase( ), 这 样 你 就 可 以 放 心 地 挪 动 你 的 目 <BR>录 , 而 无 需 每 挪 一 次 就 去 修 改 程 序 。 不 论 你 怎 么 移 动 目 录 <BR>getDocumentBase( ) 总 能 找 到 那 个 包 含 了 Java 程 序 的 HTML , 找 到 它 我 <BR>们 就 可 以 按 相 对 路 径 找 到 所 要 加 载 的 图 片 。 <BR>* 我 实 在 不 想 去 考 虑 什 么 目 录 树 、 路 径 这 些 难 缠 的 问 题 , 我 想 就 <BR>像 程 序 里 那 样 在 getDocumentBase( ) 后 面 直 接 写 图 片 文 件 的 文 件 名 。 <BR>好 主 意 ! 想 那 样 做 很 容 易 , 你 只 需 要 把 那 个 图 片 文 件 和 包 含 了 这 <BR>个 Applet 的 HTML 文 件 放 在 同 一 个 目 录 下 就 行 了 。 <BR>小 结 <BR> 这 一 章 的 学 习 到 此 就 结 束 了 , Java 多 姿 多 彩 的 图 形 效 果 为 你 的 <BR>主 页 增 色 不 少 。 总 结 一 下 本 章 所 讲 述 的 内 容 , 我 们 在 这 一 章 里 学 <BR>习 了 : <BR>用 各 种 丰 富 的 绘 图 指 令 画 出 线 、 矩 形 、 椭 圆 、 弧 、 多 边 形 等 <BR>各 式 各 样 的 图 形 。 <BR>drawLine 用 来 画 线 , drawRect 和 fillRect 画 的 是 空 心 和 实 心 的 矩 形 <BR>, drawRoundRect 和 fillRoundRect 是 画 圆 角 矩 形 的 方 法 , 可 以 用 <BR>fill3Drect 画 出 具 有 3 维 立 体 效 果 的 矩 形 , 当 然 也 可 以 完 全 自 己 <BR>画 。 <BR>用 drawOral 和 fillOral 画 空 心 和 实 心 的 椭 圆 , drawArc 可 以 画 一 段 <BR>弧 , fillArc 画 的 是 一 个 扇 形 , drawPolygon 和 fillPolygon 是 画 多 边 <BR>形 的 两 种 方 法 。 <BR>用 getImage 在 Java Applet 中 加 载 现 成 的 图 形 , 你 不 仅 可 以 自 己 <BR>在 程 序 中 画 图 , 还 能 够 利 用 别 的 图 形 处 理 专 业 软 件 为 你 的 程 <BR>序 作 出 精 美 的 图 片 , 然 后 直 接 加 载 到 程 序 中 。 <BR>加 载 了 图 片 靠 drawImage 把 它 显 示 出 来 。 <BR> 学 习 完 本 章 , 可 以 在 主 页 里 加 入 各 种 栩 栩 如 生 的 图 片 了 , 美 <BR>中 不 足 的 是 它 们 都 是 静 态 的 , 试 想 一 下 , 主 页 里 的 图 形 动 起 来 , <BR>能 够 用 鼠 标 、 键 盘 控 制 该 会 多 么 令 人 振 奋 。 接 着 学 习 以 后 的 两 章 <BR>, 你 就 能 够 通 过 自 己 的 努 力 实 现 这 个 愿 望 。 ( 待 续 ) <BR>-- <BR> <BR> 爱情来得快去得也快,只有猪肉卷是永恒的. <BR> <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.5.75] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?