00000001.htm
来自「水木清华BBS」· HTM 代码 · 共 110 行
HTM
110 行
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: zixia (独守空房の比特仙子), 信区: Java <BR>标 题: 来自 JAVA 的传说15.2 <BR>发信站: BBS 水木清华站 (Tue May 12 19:13:27 1998) <BR> <BR> 来 自 Java 的 传 说 (15) <BR> <BR> 好 啦 ! 先 来 编 个 程 序 处 理 一 下 “ 按 下 鼠 标 <BR>” 这 个 事 件 , 亲 自 体 验 体 验 交 互 式 程 序 到 底 怎 么 回 <BR>事 。 这 个 程 序 会 在 你 点 鼠 标 的 位 置 上 显 示 一 个 小 红 <BR>叉 , 并 告 诉 你 这 个 小 叉 的 位 置 , 以 及 这 是 第 几 个 小 <BR>叉 。 <BR>程 序 17.1 <BR> // mouse.java <BR> import java.awt.Graphics; <BR> import java.awt.Event; <BR> import java.awt.Color; <BR> public class mouse extends java.applet.Applet <BR> { <BR> int num = 0; // 设 置 计 数 器 <BR>的 初 值 <BR> int px,py; <BR> public boolean mouseDown(Event evt,int x,int y) <BR> // “ 鼠 标 按 下 ” 处 理 { px = x; <BR>// 取 得 按 下 鼠 标 时 的 坐 标 <BR> py = y; <BR> num++; // 计 数 器 加 1 <BR> repaint( ); // 重 画 窗 口 <BR> return true; // 返 回 true , 表 明 事 件 处 <BR>理 过 了 <BR> } <BR> public void update(Graphics g) <BR> { <BR> g.setColor(getBackground( )); // 用 背 景 <BR>色 刷 出 一 块 区 域 <BR> g.fillRect(10,300,200,60); <BR> paint(g); // 调 用 paint( ) <BR>方 法 <BR> } <BR> public void paint(Graphics g) <BR> { <BR> g.setColor(Color.green); // 设 置 当 前 画 <BR>笔 为 绿 色 <BR> g.drawString("The location of mark is <BR>("+px+","+py+")",10,320); <BR> g.drawString("This is NO."+num+" <BR>point",10,340); // 输 出 点 鼠 标 时 的 坐 标 值 和 点 鼠 标 <BR>的 次 数 <BR> g.setColor(Color.red); // 在 点 了 鼠 标 的 <BR>位 置 画 一 个 小 红 叉 <BR> g.drawLine(px-5,py-5,px+5,py+5); <BR> g.drawLine(px+5,py-5,px-5,py+5); <BR> } <BR> } <BR>程 序 mouse.java 的 HTML 文 件 如 下 所 示 <BR>这 个 程 序 的 运 行 结 果 如 图 17.1 所 示 。 <BR> <BR>图 17.1 程 序 17.1 的 运 行 结 果 <BR> 你 看 , 我 们 在 这 个 Java Applet 的 运 行 窗 口 里 <BR>用 小 叉 画 了 一 个 北 斗 星 座 。 只 要 程 序 还 在 运 行 , 你 <BR>在 这 个 Java Applet 里 所 做 的 任 何 一 个 点 鼠 标 操 作 都 会 <BR>被 它 用 小 红 叉 记 录 下 来 , 并 且 告 诉 你 点 中 的 位 置 。 <BR>试 一 试 , 是 不 是 很 有 趣 呢 ? <BR> 运 行 完 程 序 , 我 们 再 来 看 看 程 序 里 一 些 应 该 <BR>注 意 的 地 方 。 <BR> 1.public boolean mouseDown ( Event evt , int x , int y ) { <BR>… … } <BR> 这 就 是 处 理 鼠 标 按 下 这 一 事 件 的 方 法 , 一 旦 <BR>鼠 标 被 按 下 , 系 统 就 会 自 动 去 调 用 它 , 取 得 鼠 标 按 <BR>下 时 的 位 置 , 并 把 计 数 器 加 1 , 然 后 调 用 repaint 重 画 <BR>画 面 , 最 后 返 回 true , 告 诉 系 统 “ 鼠 标 按 下 ” 这 一 <BR>事 件 已 经 处 理 完 毕 。 <BR> 这 个 程 序 中 , 我 们 用 了 两 个 以 前 从 来 没 有 用 <BR>过 的 类 : java.awt.Point 和 java.awt.Event 。 Point 对 象 用 坐 <BR>标 ( x , y ) 来 表 示 一 个 点 。 Event 就 是 本 章 的 主 角 — — <BR>事 件 类 。 今 后 凡 是 和 鼠 标 、 键 盘 打 交 道 的 程 序 开 始 <BR>必 须 写 这 句 话 。 <BR> 2.import java.awt.Event ; <BR> 有 一 个 update 方 法 你 可 能 从 来 没 见 过 。 update <BR>的 意 思 就 是 “ 更 新 ” 。 其 实 每 次 系 统 调 用 repaint 的 <BR>时 候 , repaint 就 自 动 先 去 调 用 update , 然 后 再 调 用 <BR>paint 在 纸 上 画 画 , 这 就 是 repaint 的 调 用 过 程 。 系 统 <BR>缺 省 的 update 是 用 背 景 色 把 全 部 输 出 窗 口 都 刷 一 遍 <BR>。 可 是 这 个 程 序 里 , 我 们 想 保 留 每 次 画 的 小 叉 , 唯 <BR>一 需 要 更 新 的 是 下 面 的 输 出 信 息 , 所 以 我 们 按 照 自 <BR>己 的 需 要 改 写 了 update , 只 让 它 更 新 写 字 的 区 域 , <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 + -
显示快捷键?