⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0059.htm

📁 Java语言是Internet上最热门的编程语言
💻 HTM
📖 第 1 页 / 共 2 页
字号:

<p>图 6.9 </p>

<h4 align=center>6.4.1 在 列 表 框 中 进 行 选 择 </h4>

<p>可 以 用 成 员 函 数getSelectedItem()或getSelectedItems()来 接 收 在
列 表 框 中 被 选 的 选 项。 在 单 选 列 表 框 里,“ 双 击” 一 个 选
项 就 可 以 触 发 一 个 可 被action()成 员 函 数 捕 捉 到 的 事 件。 public
boolean action(Event e, Object arg) { . . . if (e.target instanceof List)
{ System.out.println(&quot;List entry:&quot; + arg); } . . . } </p>

<h4 align=center>6.4.2 多 选 列 表 框</h4>

<p>对 于 多 选 列 表 框, 要 使 你 的 选 择 产 生 作 用, 需 要 使 用 其
他 的 外 部 事 件。 例 如, 你 可 以 使 用 按 钮 事 件: </p>

<p>图 6.10 </p>

<p>public boolean action(Event e, Object arg) { . . . if (e.target instanceof
Button) { . . . if (&quot;Ok&quot;.equals(arg)) { string[] selected ; selected
= l.getSelectedItems( ); for (int I = 0; I&lt; selected.length; I++) {
System.out.println(selected[i]); } } } } </p>

<h4 align=center>6.5 文 本 域 </h4>

<p>文 本 域 一 般 用 来 让 用 户 输 入 象 姓 名、 信 用 卡 号 这 样 的
信 息, 它 是 一 个 能 够 接 收 用 户 的 键 盘 输 入 的 小 块 区 域。 </p>

<h4 align=center>6.5.1 创 建 文 本 域 </h4>

<p>在 创 建 文 本 域 时, 有 四 种 类 型 ?copy; 你 选 择: 空 的、 空
的 并 且 具 有 指 定 长 度、 带 有 初 始 文 本 内 容 的 和 带 有 初 始
文 本 内 容 并 具 有 指 定 长 度 的。 下 面 是 生 成 这 四 种 文 本 域
的 代 码: </p>

<p>TextField tf1, tf2, tf3, tf4; </p>

<p>// 空 的 文 本 域 tf1 = new TextField() ; // 长 度 为20的 空 的 文 本
域 tf2 = new TextField(20) ; // 带 有 初 始 文 本 内 容 的 文 本 域 tf3
= new TextField(&quot;你 好&quot;) ; // 带 有 初 始 文 本 内 容 并 具 有
指 定 长 度 的 文 本 域 tf4 = new TextField(&quot;你 好&quot;, 30) ; add(tf1)
; add(tf2) ; add(tf3) ; add(tf4) ; </p>

<p>图 6.11 </p>

<h4 align=center>6.5.2 文 本 域 事 件 </h4>

<p>当 用 户 在 文 本 域 里 敲“ 回 车” 键 时, 就 产 生 了 一 个 文 本
域 事 件。 象 其 他 事 件 一 样, 你 可 以 以 在 成 员 函 数action()中
捕 捉 到 这 个 事 件。 </p>

<p>public boolean action(Event e, Object arg) { . . . if (e.target instanceof
TextField) { System.out.println(&quot;TextField: &quot;+arg); } . . . }
</p>

<h4 align=center>6.6 文 本 区 </h4>

<p>文 本 区 可 以 显 示 大 段 的 文 本。 </p>

<h4 align=center>6.6.1 创 建 文 本 区</h4>

<p>与 文 本 域 类 似, 创 建 文 本 区 时 也 有 四 种 类 型 ?copy; 选 择,
但 如 果 指 定 文 本 区 的 大 小, 必 须 同 时 指 定 行 数 和 列 数。 </p>

<p>TextArea ta1, ta2; // 一 个 空 的 文 本 区 ta1 = new TextArea(); </p>

<p>// 一 个 带 有 初 始 内 容、 大 小 为5 x 40 的 文 本 区 ta2 = new TextArea(&quot;你
好!&quot;, 5, 40); </p>

<p>可 以 用 成 员 函 数setEditable()来 决 定 用 户 是 否 可 对 文 本 区
的 内 容 进 行 编 辑。 </p>

<p>// 使 文 本 区 为 只 读 的 ta2.setEditable(false) </p>

<p>图 6.12 </p>

<h4 align=center>6.6.2 接 收 文 本 区 的 内 容</h4>

<p>可 以 用 成 员 函 数getText()来 获 得 文 本 区 的 当 前 内 容。 例 如:
System.out.println(ta1.getText()); 文 本 区 本 身 不 产 生 自 己 的 事
件。 但 你 可 以 用 外 部 事 件 来 接 收 文 本 区 的 内 容: </p>

<p>public boolean action(Event e, Object o) { if (e.target instanceof Button)
{ if (&quot;send&quot;.equals(o)) { String textToSend = ta1.getText ();
System.out.println(&quot;sending: &quot; + textTosend); mySendFunction(textToSend);
} } else { . . . } } </p>

<h4 align=center>6.7 画 板</h4>

<p>画 板 能 够 捕 捉 到 ?copy; 露 事 件、 鼠 标 事 件 和 其 他 类 似 的
事 件。 基 本 的 画 板 类 不 处 理 这 ?copy; 事 件, 但 你 可 以 ?copy;
展 它 来 创 建 有 你 所 需 功 能 的 画 板 类。 </p>

<h4 align=center>6.7.1 创 建 画 板 </h4>

<p>import java.awt.*; import java.applet.Applet; </p>

<p>public class superGUI extends Applet { . . . myCanvas doodle; . . .
public void init() { . . . // 建 立 我 们 的 画 板 doodle = new myCanvas();
doodle.reshape(0, 0, 100, 100); leftPanel.add(&quot;Center&quot;,doodle);
. . . } } </p>

<p>class myCanvas extends Canvas { public void paint(Graphics g) { g.drawRect(0,
0, 99, 99); g.drawString(&quot;Canvas&quot;, 15, 40); } } </p>

<h4 align=center>6.7.2 画 板 事 件 </h4>

<p>你 可 以 覆 盖 一 般 的 事 件 处 理 成 员 函 数。 下 面 是 一 个 包
含 了mouseDown事 件 处 理 的 例 子: </p>

<p>import java.awt.*; import java.applet.Applet; </p>

<p>public class canvas extends Applet { </p>

<p>Button b1; </p>

<p>public void init() { // Set our layout as a Border style setLayout(new
BorderLayout(15, 15)); b1 = new Button(&quot;Test&quot;); myCanvas c1 =
new myCanvas(100, 100); // add the canvas and the button to the applet
add(&quot;Center&quot;, c1); add(&quot;South&quot;, b1); } </p>

<p>public boolean action(Event e, Object arg) { System.out.println(&quot;Event:
&quot; + arg); return true; } </p>

<p>public boolean mouseDown(Event e, int x, int y) { System.out.println(&quot;Mouse
works: (&quot; + x + &quot;,&quot; + y + &quot;)&quot;); return true; }
} </p>

<p>class myCanvas extends Canvas { private int width; private int height;
</p>

<p>public myCanvas(int w, int h) { width = w; height = h; reshape(0, 0,
w, h); } </p>

<p>public void paint(Graphics g) { g.setColor(Color.blue); g.fillRect(0,
0, width, height); } </p>

<p>public boolean mouseDown(Event e, int x, int y) { if (( x &lt; width)
&amp;&amp; (y &lt;height)) { System.out.println(&quot;Canvas mouse works:
(&quot; + x + &quot;,&quot; + y +&quot;)&quot;); return true; } return
false; //Not our mouseDown } } </p>

<h4 align=center>6.8 滚 动 条 </h4>

<p>在 某 ?copy; 程 序 中, 需 要 调 整 线 性 的 值, 这 时 就 需 要 滚
动 条。 滚 动 条 提 ?copy; 了 易 于 操 作 的 值 的 范 围 或 区 的 范 围。
</p>

<h4 align=center>6.8.1 创 建 滚 动 条</h4>

<p>当 创 建 一 个 滚 动 条 时, 必 须 指 定 它 的 方 向、 初 始 值、 滑
块 的 大 小、 最 小 值 和 最 大 值。 </p>

<p>public Scrollbar(int orientation, int initialValue, int sizeOfSlider,
int minValue, int maxValue); </p>

<p>下 面 是 一 个 例 子: </p>

<p>Scrollbar redSlider; public void init() { redSlider = new Scrollbar(Scrollbar.VERTICAL,
0, 1, 0, 255); add(redSlider); } </p>

<p>图 6.13 </p>

<h4 align=center>6.8.2 滚 动 条 事 件 </h4>

<p>和 其 他 接 口 元 件 一 样, 滚 动 条 产 生 一 个 你 可 以 控 制 的
事 件, 但 和 其 他 事 件 不 同, 你 必 须 直 接 使 用 成 员 函 数handleEvent(
), 而 不 能 使 用 成 员 函 数action( ) . </p>

<p>public boolean handleEvent (Event e) { if (e.target instanceof Scrollbar)
{ System.out.println(&quot;Scrollbar: &quot; + ((Scrollbar)e.target).getValue(
)); return true; } return super.handleEvent(e); } </p>

<h4 align=center>6.8.3 滚 动 条 的 值 的 显 示</h4>

<p>如 果 你 想 显 示 滑 块 所 在 位 置 的 值, 需 要 加 一 个 自 己 的
文 本 域。 下 面 是 一 个 例 子。 </p>

<p>import java.awt.*; import java.applet.Applet; </p>

<p>public class redSlider extends Applet { Scrollbar redslider; TextField
redvalue; Label redlabel; </p>

<p>public void init( ) { setLayout(new GridLayout(1, 3)); redslider = new
Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255); redvalue = new TextField(&quot;0&quot;,
5); redvalue.setEditable(false); redlable = new Label(&quot;Red (0-255)&quot;);
add(redlabel); add(redslider); add(redvalue); } </p>

<p>public boolean handleEvent(Event e) { if (e.target instanceof Scrollbar)
{ redvalue.setText(Integer.toString(((Scrollbar)e.target).getValue()));
return true; } return super.handleEvent(e); } </p>

<p>public boolean action(Event e, Object arg) { System.out.println(&quot;Event&quot;
+ arg); return true; } } </p>

<p>图 6.14 </p>

<h4 align=center>本 章 小 结 </h4>

<p>1. Java提 ?copy; 了 生 成 一 个 良 好 的 图 形 用 户 接 口 所 需 要
的 一 ?copy; 基 本 元 件: 面 板(Panel?copy;、 按 钮 (Button?copy;、
标 ?copy;(Label?copy;、 画 板(Canvases?copy;、 滚 动 条(Scrollbar?copy;、
列 表 框(List?copy;、 文 本 域(Text Field?copy;、 文 本 区(Text Area?copy;。
2. 大 部 分 元 件 都 有 自 己 的 事 件, 你 可 以 捕 捉 并 处 理 它 们。
</p>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -