![]() |
|
|
对 一 个 优 秀 的 应 用 程 序 来 说, 良 好 的 图 形 用 户 接 口 是 必 不 可 少 的。 缺 少 良 好 的 图 形 用 户 接 口, 将 会 给 用 户 理 解 和 使 用 应 用 程 序 带 来 很 多 不 便。 很 难 想 象 用 户 为 了 学 会 使 用 一 个 应 用 程 序, 去 记 一 大 堆 命 令。 Java提copy; 了 生 成 一 个 良 好 的 图 形 用 户 接 口 所 需 要 的 一copy; 基 本 元 件: 面 板(Panel copy;、 按 钮 (Button copy;、 标copy;(Label copy;、 画 板(Canvases copy;、 滚 动 条(Scrollbar copy;、 列 表 框(List copy;、 文 本 域(Text Field copy;、 文 本 区(Text Area copy;。 6.1 面 板 面 板 提copy; 了 建 立 应 用 程 序 的 空 间。 你 可 以 把 图 形 元 件(包 括 其 他 面 板 copy; 放 在 一 个 面 板 上。 Applet类 提copy; 了 一 个 基 本 的 面 板。 6.1.1 布 局 管 理 Java提copy; 了 几 种 布 局: 顺 序 布 局(Flow Layout copy;、 边 界 布 局(Border Layout copy; 和 网 格 布 局 (Grid Layout) 6.1.1.1 顺 序 布 局 顺 序 布 局(Flow Layout copy; 是 最 基 本 的 一 种 布 局, 面 板 的 缺 省 布 局 就 是 顺 序 布 局。 顺 序 布 局 指 的 是 把 图 形 元 件 一 个 接 一 个 地reg; 平 地 放 在 面 板 上。 下 面 是 一 个 顺 序 布 局 的 例 子: 6.1.1.2 边 界 布 局 边 界 布 局 包 括 五 个 区: 北 区、 南 区、 东 区、 西 区 和 中 区。 这 几 个 区 在 面 板 上 的 分 布 规 律 是" 上 北 下 南, 左 西 右 东"。 下 面 是 一 个 边 界 布 局 的 例 子: 6.1.1.3 网 格 布 局 网 格 布 局 把 面 板 分 成 一 个 个 的 网 格, 你 可 以 给 出 网 格 的 行 数 和 列 数。 下 面 是 一 个 网 格 布 局 的 例 子: 6.2 按 钮 6.2.1 按 钮 事 件 用 户 点 一 下 按 钮, 就 会 有 一 个 按 钮 事 件 发 生。 你 可 以 通 过 覆 盖 一 个applet的action成 员 函 数 来 捕 捉 按 钮 事 件。 public boolean action (Event e, Object o) { if (e.target instanceof Button) { system.out.println ((string) o); } else { System.out.println ("Non-button event"); } return true; } 6.2.2 按 钮 类 型 Java提copy; 了 标 准 的 按 压 式 按 钮, 同 时 也 提copy; 了 选 择 式 按 钮 和 标 记 式 按 钮。 6.2.2.1 选 择 式 按 钮 选 择 式 按 钮 提copy; 了 从 几 个 选 项 中 选 一 个 选 项 的 功 能。 下 面 是 从 几 个 市 中 选 一 个 市 的 例 子, 市 名 放 在 选 择 式 按 钮 中: 6.2.2.2 标 记 式 按 钮 标 记 式 按 钮 的 状 态 作 为 标 记 框 事 件 的 对 象 参 数 返 回。 下 面 是 一 个 标 记 式 按 钮 的 例 子: 6.2.2.3 按 键 式 按 钮 按 键 式 按 钮 是 一 组 按 钮, 用 户 可 以 选 中 其 中 一 个, 同 时 这 一 组 中 的 其 他 按 钮 将 被 关 闭。 下 面 是 一 个 按 键 式 按 钮 的 例 子: public class CheckBox extends Applet { CheckboxGroup cbg; public void init() { cbg = new CheckboxGroup(); add (new Checkbox("one ", cbg, true)); add (new Checkbox("two ", cbg,false)); add (new Checkbox("three", cbg, false)); } } 6.2.3 自 包 含 按 钮 Java语 言 的 面 向 对 象 特 性 使 我 们 能 够 创 建 完 全 自 包 含 的 按 钮。 在 自 包 含 按 钮 里, 你 可 以 在copy; 展 按 钮 类 里 建 立 事 件 控 制 函 数。 下 面 是 一 个 自 包 含 按 钮 的 例 子: 6.3 标copy; 标copy; 是 一 种 放 到 面 板 上 的 静 止 的 正 文。 下 面 是 一 个 标copy; 的 例 子: import java.awt.*; import java.applet.Applet; public class label extends Applet { public void init() { setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10)); Label label1 = new Label("你 好!"); Label label2 = new Label("另 一 个 标copy;"); add(label1); add(label2); } } 6.4 列 表 框 列 表 框 使 用 户 易 于 操 作 大 量 的 选 项。 创 建 列 表 框 的 方 法 和Choice button有copy; 相 似。 列 表 框 的 所 有 条 目 都 是 可 见 的, 如 果 选 项 很 多, 超 出 了 列 表 框 可 见 区 的 范 围, 则 列 表 框 的 旁 边 将 会 有 一 个 滚 动 条。 首 先, 创 建 列 表 框: List l = new List(4, false); 这 个 成 员 函 数 创 建 了 一 个 显 示4行 的 列 表 框。 第 二 个 参 数"false"表 示 这 个 列 表 框 是 单 选 的, 如 果 是"true ", 则 表 示 是 多 选 的。 下 面 增 加 列 表 框 的 选 项: l.addItem("北copy; 大 学"); l.addItem("清 华 大 学"); l.addItem("吉林 大 学"); l.addItem("复copy; 大 学"); l.addItem("南 开 大 学"); l.addItem("天 津 大 学"); l.addItem("南copy; 大 学"); add(l); 6.4.1 在 列 表 框 中 进 行 选 择 可 以 用 成 员 函 数getSelectedItem()或getSelectedItems()来 接 收 在 列 表 框 中 被 选 的 选 项。 在 单 选 列 表 框 里," 双 击" 一 个 选 项 就 可 以 触 发 一 个 可 被action()成 员 函 数 捕 捉 到 的 事 件。 public boolean action(Event e, Object arg) { . . . if (e.target instanceof List) { System.out.println("List entry:" + arg); } . . . } 6.4.2 多 选 列 表 框 对 于 多 选 列 表 框, 要 使 你 的 选 择 产 生 作 用, 需 要 使 用 其 他 的 外 部 事 件。 例 如, 你 可 以 使 用 按 钮 事 件: public boolean action(Event e, Object arg) { . . . if (e.target instanceof Button) { . . . if ("Ok".equals(arg)) { string[] selected ; selected = l.getSelectedItems( ); for (int I = 0; I< selected.length; I++) {System.out.println(selected[i]); } } } } 上一页12 下一页
上一篇:Java的类介绍入门 下一篇:java 的多线程入门
|