?? 6.html
字號:
<HTML><HEAD><TITLE>黃金書屋</TITLE><META content="text/html; charset=gb2312" http-equiv=Content-Type><link rel="stylesheet" href="/cssset.css"></HEAD><BODY bgColor=#ffffff leftMargin=0 link=#000000 topMargin=0 vLink=#000000><center> <script language="JavaScript" src="/top.js"></script></center><TABLE background=images/bj.jpg border=0 cellSpacing=0 width="100%"> <TR> <TD bgColor=#c6bba4 vAlign=top width="12%"></TD> <TD background=/images/bj.jpg vAlign=top width="76%"> <center> <iframe width=468 height=60 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no bordercolor="#000000" src="/banner3.html"></iframe> </center> <br> </TD> <TD bgColor=#c6bba4 vAlign=top width="12%"></TD> </TR></TABLE><TABLE background=images/bj.jpg border=0 cellSpacing=0 width="100%"> <TR> <TD bgColor=#c6bba4 vAlign=top width="11%" align="right"> <br><br><br> <b><a href="/index.html">回首頁</a><br><br><a href='5.html'>上一頁</a><br><br><a href='7.html'>下一頁</a><br><br><a href='http://pub.goldnets.com:81/bbs/post.php?job=new&topic=12210' target=_blank> 我有話說 </a><br><br><a href='http://pub.goldnets.com:81/bbs/bbslist.php?topic=12210' target=_blank> 評論一覽 </a></center><br><!--title_end--></b> </TD> <TD bgColor=#c6bba4 vAlign=top width="1%"></TD> <TD background=/images/bj.jpg vAlign=top width="76%"> <br> <hr align="center" width="98%" size="1"> <br> <font color="blue">Java語言入門</font> >> <font color=red>第 六 章 Java圖 形 用 戶 接 口</font><hr width=90% color=#7A7A71><table width=88% border=0 align=center><tr><td><div style=font-size:12pt><pre> Java語言入門
第 六 章 Java圖 形 用 戶 接 口
對 一 個 優 秀 的 應 用 程 序 來 說, 良 好 的 圖 形 用 戶 接 口 是 必
不 可 少 的。 缺 少 良 好 的 圖 形 用 戶 接 口, 將 會 給 用 戶 理 解
和 使 用 應 用 程 序 帶 來 很 多 不 便。 很 難 想 象 用 戶 為 了 學 會
使 用 一 個 應 用 程 序, 去 記 一 大 堆 命 令。 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 copy;。
6.1.1.1 順 序 布 局
順 序 布 局(Flow Layout copy; 是 最 基 本 的 一 種 布 局, 面 板 的 缺
省 布 局 就 是 順 序 布 局。 順 序 布 局 指 的 是 把 圖 形 元 件 一 個
接 一 個 地reg; 平 地 放 在 面 板 上。 下 面 是 一 個 順 序 布 局 的
例 子:
import java.awt.*; import java.applet.Applet;
public class myButtons extends Applet { Button button1, button2, button3;
public void init() { button1 = new Button("確 定"); button2 = new Button("
打 開"); button3 = new Button("關 閉"); add(button1); add(button2);
add(button3); } }
6.1.1.2 邊 界 布 局
邊 界 布 局 包 括 五 個 區: 北 區、 南 區、 東 區、 西 區 和 中 區。 這
幾 個 區 在 面 板 上 的 分 布 規 律 是" 上 北 下 南, 左 西 右 東"。
下 面 是 一 個 邊 界 布 局 的 例 子:
import java.awt.*; import java.applet.Applet;
public class buttonDir extends Applet {
Button buttonN, buttonS, buttonW, buttonE, buttonC;
public void init() { setLayout(new BorderLayout()); buttonN = new
Button(" reg;"); buttonS = new Button("火"); buttonE = new Button("木
"); buttonW = new Button("金"); buttonC = new Button("土"); add("North",
buttonN); add("South", buttonS); add("East", buttonE); add("West",
buttonW); add("Center", buttonC); } }
6.1.1.3 網 格 布 局
網 格 布 局 把 面 板 分 成 一 個 個 的 網 格, 你 可 以 給 出 網 格 的
行 數 和 列 數。 下 面 是 一 個 網 格 布 局 的 例 子:
import java.awt.*; import java.applet.Applet;
public class buttonGrid extends Applet { Button button1, button2, button3,
button4, button5, button6, button7, button8;
public void init() { setLayout(new GridLayout(4,2)); button1 = new
Button("乾"); button2 = new Button("坤"); button3 = new Button("艮");
button4 = new Button("震"); button5 = new Button("坎"); button6 = new
Button("離"); button7 = new Button("巽"); button8 = new Button("兌");
add(button1); add(button2); add(button3); add(button4); add(button5);
add(button6); add(button7); add(button8); } }
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; 了 從 幾 個 選 項 中 選 一 個 選 項 的 功 能。
下 面 是 從 幾 個 市 中 選 一 個 市 的 例 子, 市 名 放 在 選 擇 式 按
鈕 中:
CityChooser = new Choice();
CityChooser.addItem("北copy;"); CityChooser.addItem("上海");
CityChooser.addItem("天 津");
add(CityChooser);
6.2.2.2 標 記 式 按 鈕
標 記 式 按 鈕 的 狀 態 作 為 標 記 框 事 件 的 對 象 參 數 返 回。 下
面 是 一 個 標 記 式 按 鈕 的 例 子:
Checkbox fillStyleButton; fillStyleButton = new Checkbox("Solid");
public boolean action(Event e, Object arg) { if (e.target instanceof
Checkbox) { System.out.println("Checkbox: " + arg); } return true; }
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; 展 按 鈕 類 里 建
立 事 件 控 制 函 數。 下 面 是 一 個 自 包 含 按 鈕 的 例 子:
import java.awt.*; import java.applet.Applet;
class okButton extends Button {
public okButton() { setLabel("Ok"); }
public boolean action(Event e, Object arg)
{ System.out.println("OKButton"); return true; } }
public class buttontest extends Applet { okButton myOkButton;
public void init() { myOkButton = new okButton(); add(myOkButton); } }
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -