summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/html/k100202.html
blob: ed37c907c0a43e0734898d69936d9ea561460e1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100201.html;106,k100201.html;107,k100203.html;108,k100206.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100201.html">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100201.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100203.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100206.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
<td align="right">Kapitel 31 - GUI-Dialoge
</table>
<hr>


<!-- Section -->
<a name="dialogerstellen"></a>
<h2>31.1 Erstellen eines Dialogs </h2>
<hr>
<ul>
<li><a href="k100202.html#dialogerstellen">31.1 Erstellen eines Dialogs</a>
<ul>
<li><a href="k100202.html#sectlevel3id031001001">31.1.1 Anlegen eines Dialogfensters</a>
<li><a href="k100202.html#sectlevel3id031001002">31.1.2 Zuordnen eines Layoutmanagers</a>
<li><a href="k100202.html#sectlevel3id031001003">31.1.3 Einf&uuml;gen von Dialogelementen</a>
<li><a href="k100202.html#sectlevel3id031001004">31.1.4 Anzeigen des Dialogfensters</a>
</ul>
</ul>
<hr>

<p>
In diesem Kapitel soll das Erzeugen von Fenstern mit eingebetteten
Dialogelementen vorgestellt werden. Derartige Fenster werden in der
Praxis sehr viel h&auml;ufiger ben&ouml;tigt als Fenster, deren Ausgabe
mit primitiven Grafikoperationen erzeugt wurde, wie sie in den Kapiteln
<a href="k100150.html#kapitelgrafikausgabe">23</a>, <a href="k100156.html#kapiteltextausgabe">24</a>
und <a href="k100161.html#kapitelfarben">25</a> vorgestellt wurden.
Der Einfachheit halber wollen wir derartige Fenster in diesem Kapitel
als <i>Dialoge</i> bezeichnen. Sie dienen dazu, Programmdaten anzuzeigen,
und geben dem Anwender die M&ouml;glichkeit, diese zu &auml;ndern.

<p>
Das Erstellen eines Dialogs erfolgt in vier Schritten: 
<ul>
<li>Anlegen eines Fensters
<li>Zuordnen eines Layoutmanagers
<li>Einf&uuml;gen von Dialogelementen
<li>Anzeigen des Fensters
</ul>


<!-- Section -->
<a name="sectlevel3id031001001"></a>
<h3>31.1.1 Anlegen eines Dialogfensters </h3>

<p>
Das Anlegen eines Fensters zur Aufnahme von Dialogelementen erfolgt
genauso wie das Anlegen eines normalen Fensters. &Uuml;blicherweise
wird dazu eine eigene Fensterklasse abgeleitet, um die Steuerung des
Dialogs zu kapseln. 
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>

<p>
Da Java prinzipiell keinen Unterschied zwischen Fenstern zur Ausgabe
eines Dialogs und solchen zur Anzeige von Grafiken macht, ist es m&ouml;glich,
ein Dialogfenster wahlweise aus <a name="ixa102089"><a href="index_f.html#ixb101144"><font color=#000080><tt>Frame</tt></font></a></a>
oder <a name="ixa102090"><a href="index_d.html#ixb101145"><font color=#000080><tt>Dialog</tt></font></a></a>
abzuleiten. Die Klasse <a href="index_d.html#ixb101145"><font color=#000080><tt>Dialog</tt></font></a>
erlaubt es, das Ver&auml;ndern der Fenstergr&ouml;&szlig;e durch den
Anwender zu unterbinden, und bietet die M&ouml;glichkeit, den Dialog
<i>modal</i> zu machen. Dadurch wird die Interaktion des Anwenders
mit <i>anderen</i> Fenstern der Anwendung bis zum Schlie&szlig;en
des Dialogfensters blockiert. Im Gegensatz zu <a href="index_f.html#ixb101144"><font color=#000080><tt>Frame</tt></font></a>
fehlt jedoch die M&ouml;glichkeit, eine Men&uuml;leiste zu erzeugen
oder dem Fenster ein Icon zuzuordnen. Wir werden in den nachfolgenden
Beispielen meist die Klasse <a href="index_f.html#ixb101144"><font color=#000080><tt>Frame</tt></font></a>
verwenden, um Dialoge zu erzeugen. Die Klasse <a href="index_d.html#ixb101145"><font color=#000080><tt>Dialog</tt></font></a>
werden wir am Ende dieses Kapitels vorstellen. Dabei werden wir insbesondere
das Erzeugen modaler Dialoge und die R&uuml;ckgabe von Ergebniswerten
aufzeigen.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF">&nbsp;Hinweis&nbsp;</font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>


<!-- Section -->
<a name="sectlevel3id031001002"></a>
<h3>31.1.2 Zuordnen eines Layoutmanagers </h3>

<p>
Wie bereits erw&auml;hnt, sind die Layoutmanager in Java f&uuml;r
die Anordnung der Dialogelemente im Fenster verantwortlich. Jeder
Layoutmanager verfolgt dabei eine eigene Strategie, Elemente zu platzieren
und in der Gr&ouml;&szlig;e so anzupassen, dass sie aus seiner Sicht
optimal pr&auml;sentiert werden. 

<p>
Die Zuordnung eines Layoutmanagers zu einem Fenster wird in der Klasse
<a name="ixa102091"><a href="index_c.html#ixb101353"><font color=#000080><tt>Container</tt></font></a></a>
realisiert. <a href="index_c.html#ixb101353"><font color=#000080><tt>Container</tt></font></a>
ist direkt aus <a href="index_c.html#ixb101302"><font color=#000080><tt>Component</tt></font></a>
abgeleitet, und beide zusammen bilden das Ger&uuml;st f&uuml;r alle
anderen Fensterklassen. Die Klasse <a href="index_c.html#ixb101353"><font color=#000080><tt>Container</tt></font></a>
stellt eine Methode <a name="ixa102092"><a href="index_s.html#ixb101597"><font color=#000080><tt>setLayout</tt></font></a></a>
zur Verf&uuml;gung, mit der der gew&uuml;nschte Layoutmanager dem
Fenster zugeordnet werden kann: 
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public void setLayout(LayoutManager mgr)
</pre>
</font>
</td>
<td valign=top>
<a href="../jdkdocs/api/java/awt/Container.html" onClick="this.href=getApiDoc('java.awt.Container')"><font color="#660066" size=-1>java.awt.Container</font></a></td>
</tr>
</table>

<p>
Java stellt standardm&auml;&szlig;ig die f&uuml;nf Layoutmanager <a href="index_f.html#ixb101598"><font color=#000080><tt>FlowLayout</tt></font></a>,
<a href="index_g.html#ixb101599"><font color=#000080><tt>GridLayout</tt></font></a>,
<a href="index_b.html#ixb101600"><font color=#000080><tt>BorderLayout</tt></font></a>,
<a name="ixa102093"><a href="index_c.html#ixb101601"><font color=#000080><tt>CardLayout</tt></font></a></a>
und <a href="index_g.html#ixb101602"><font color=#000080><tt>GridBagLayout</tt></font></a>
zur Verf&uuml;gung. Der einfachste Layoutmanager ist <a href="index_f.html#ixb101598"><font color=#000080><tt>FlowLayout</tt></font></a>,
er positioniert die Dialogelemente zeilenweise hintereinander. passt
ein Element nicht mehr in die aktuelle Zeile, so wird es in der n&auml;chsten
platziert usw. Die genaue Funktionsweise der Layoutmanager wird sp&auml;ter
in diesem Kapitel vorgestellt. 

<!-- Section -->

<a name="sectlevel3id031001003"></a>
<h3>31.1.3 Einf&uuml;gen von Dialogelementen </h3>

<p>
Das Einf&uuml;gen von Dialogelementen in das Fenster erfolgt mit der
Methode <a name="ixa102094"><a href="index_a.html#ixb100727"><font color=#000080><tt>add</tt></font></a></a>
der Klasse <a href="index_c.html#ixb101353"><font color=#000080><tt>Container</tt></font></a>:
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public Component add(Component comp)
public Component add(Component comp, int pos)
public void add(Component comp, Object constraints)
</pre>
</font>
</td>
<td valign=top>
<a href="../jdkdocs/api/java/awt/Container.html" onClick="this.href=getApiDoc('java.awt.Container')"><font color="#660066" size=-1>java.awt.Container</font></a></td>
</tr>
</table>

<p>
Bei der ersten Variante wird lediglich die einzuf&uuml;gende Komponente
&uuml;bergeben und vom Layoutmanager an der daf&uuml;r vorgesehenen
Position untergebracht. Die zweite Variante erlaubt das Einf&uuml;gen
der aktuellen Komponente an beliebiger Stelle in der Liste der Komponenten.

<p>
Die dritte Variante erwartet zus&auml;tzlich ein <a name="ixa102095"><i>Constraints-Objekt</i></a>,
der bei bestimmten Layoutmanagern weitere Informationen zur Positionierung
der Komponente angibt. Wird beispielsweise die Klasse <a href="index_b.html#ixb101600"><font color=#000080><tt>BorderLayout</tt></font></a>
zur Anordnung der Dialogelemente verwendet, kann hier eine der Konstanten
<a name="ixa102096"><a href="index_s.html#ixb101604"><font color=#000080><tt>SOUTH</tt></font></a></a>,
<a name="ixa102097"><a href="index_n.html#ixb101605"><font color=#000080><tt>NORTH</tt></font></a></a>,
<a name="ixa102098"><a href="index_w.html#ixb101606"><font color=#000080><tt>WEST</tt></font></a></a>,
<a name="ixa102099"><a href="index_e.html#ixb101607"><font color=#000080><tt>EAST</tt></font></a></a>
oder <a name="ixa102100"><a href="index_c.html#ixb101608"><font color=#000080><tt>CENTER</tt></font></a></a>
&uuml;bergeben werden, um anzuzeigen, an welcher Stelle des Fensters
das Element platziert werden soll. 

<p>
Sollen Komponenten, die bereits an das Fenster &uuml;bergeben wurden,
wieder daraus entfernt werden, so kann dazu die Methode <a name="ixa102101"><a href="index_r.html#ixb100730"><font color=#000080><tt>remove</tt></font></a></a>
verwendet werden. Als Parameter ist dabei das zu l&ouml;schende Objekt
zu &uuml;bergeben: 
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public void remove(Component comp)
</pre>
</font>
</td>
<td valign=top>
<a href="../jdkdocs/api/java/awt/Container.html" onClick="this.href=getApiDoc('java.awt.Container')"><font color="#660066" size=-1>java.awt.Container</font></a></td>
</tr>
</table>

<p>
<a href="index_c.html#ixb101353"><font color=#000080><tt>Container</tt></font></a>
stellt auch Methoden zur Verf&uuml;gung, um auf die bereits eingef&uuml;gten
Dialogelemente zuzugreifen: 
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public int getComponentCount()
public Component getComponent(int n)
public Component[] getComponents()
</pre>
</font>
</td>
<td valign=top>
<a href="../jdkdocs/api/java/awt/Container.html" onClick="this.href=getApiDoc('java.awt.Container')"><font color="#660066" size=-1>java.awt.Container</font></a></td>
</tr>
</table>

<p>
Mit <a name="ixa102102"><a href="index_g.html#ixb101609"><font color=#000080><tt>getComponentCount</tt></font></a></a>
kann die Anzahl aller eingef&uuml;gten Komponenten ermittelt werden.
<a name="ixa102103"><a href="index_g.html#ixb101508"><font color=#000080><tt>getComponent</tt></font></a></a>
liefert die Komponente mit dem angegebenen Index, und <a name="ixa102104"><a href="index_g.html#ixb101610"><font color=#000080><tt>getComponents</tt></font></a></a>
gibt ein Array mit allen eingef&uuml;gten Komponenten zur&uuml;ck.


<!-- Section -->
<a name="sectlevel3id031001004"></a>
<h3>31.1.4 Anzeigen des Dialogfensters </h3>

<p>
Wurden alle Komponenten an den Container &uuml;bergeben, kann der
Dialog formatiert und durch einen Aufruf von <a name="ixa102105"><a href="index_s.html#ixb101147"><font color=#000080><tt>setVisible</tt></font></a></a>
angezeigt werden. Zweckm&auml;&szlig;igerweise sollte vorher die Methode
<a name="ixa102106"><a href="index_p.html#ixb101611"><font color=#000080><tt>pack</tt></font></a></a>
der Klasse <a href="index_w.html#ixb101146"><font color=#000080><tt>Window</tt></font></a>
aufgerufen werden, um die Gr&ouml;&szlig;e des Fensters an den zur
Darstellung der Dialogelemente erforderlichen Platz anzupassen: 
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public void pack()
</pre>
</font>
</td>
<td valign=top>
<a href="../jdkdocs/api/java/awt/Window.html" onClick="this.href=getApiDoc('java.awt.Window')"><font color="#660066" size=-1>java.awt.Window</font></a></td>
</tr>
</table>

<p>
Wir wollen uns ein einfaches Beispiel ansehen, das diese vier Schritte
demonstriert: 
<a name="listingid031001"></a>

<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
<tr>
<td valign=top>
<font color="#000055">
<pre>
<font color="#555555">001 </font><font color="#00AA00">/* Listing3101.java */</font>
<font color="#555555">002 </font>
<font color="#555555">003 </font><font color="#0000AA">import</font> java.awt.*;
<font color="#555555">004 </font><font color="#0000AA">import</font> java.awt.event.*;
<font color="#555555">005 </font>
<font color="#555555">006 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Listing3101
<font color="#555555">007 </font><font color="#0000AA">extends</font> Frame
<font color="#555555">008 </font>{
<font color="#555555">009 </font>  <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
<font color="#555555">010 </font>  {
<font color="#555555">011 </font>    Listing3101 wnd = <font color="#0000AA">new</font> Listing3101();
<font color="#555555">012 </font>    wnd.setVisible(<font color="#006699">true</font>);
<font color="#555555">013 </font>  }
<font color="#555555">014 </font>
<font color="#555555">015 </font>  <font color="#0000AA">public</font> Listing3101()
<font color="#555555">016 </font>  {
<font color="#555555">017 </font>    <font color="#006699">super</font>(<font color="#0000FF">"Dialogtest"</font>);
<font color="#555555">018 </font>    addWindowListener(<font color="#0000AA">new</font> WindowClosingAdapter(<font color="#006699">true</font>));
<font color="#555555">019 </font>    setLayout(<font color="#0000AA">new</font> FlowLayout());
<font color="#555555">020 </font>    add(<font color="#0000AA">new</font> Button(<font color="#0000FF">"Abbruch"</font>));
<font color="#555555">021 </font>    add(<font color="#0000AA">new</font> Button(<font color="#0000FF">"OK"</font>));
<font color="#555555">022 </font>    pack();
<font color="#555555">023 </font>  }
<font color="#555555">024 </font>}</pre>
</font>
</td>
<td valign=top align=right>
<a href="../examples/Listing3101.java"><font color="#000055" size=-1>Listing3101.java</font></a></td>
</tr>
</table>
<i>
Listing 31.1: Ein Dialog mit zwei Buttons</i></p>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>

<p>
Das Programm erzeugt ein kleines Fenster, das nur die beiden Buttons
enth&auml;lt. Da wir f&uuml;r das Fenster keine Gr&ouml;&szlig;e angegeben
haben, sondern diese durch Aufruf von <a href="index_p.html#ixb101611"><font color=#000080><tt>pack</tt></font></a>
automatisch berechnen lassen, ist das Fenster gerade so gro&szlig;,
dass beide Buttons darin Platz finden:</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF">&nbsp;Hinweis&nbsp;</font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<p>
<a name="imageid031001"></a>
<img src="images/ZweiButtons.gif">
<p>

<p><i>
Abbildung 31.1: Ein Dialog mit zwei Buttons</i></p>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>

<p>
In vielen Beispielen in diesem Buch wird der Einfachheit halber die
in <a href="k100152.html#fensterschliessen">Abschnitt 23.2.4</a> vorgestellte
Klasse <a href="index_w.html#ixb100159"><font color=#000080><tt>WindowClosingAdapter</tt></font></a>
verwendet, um einen Listener zum Schlie&szlig;en des Fensters zu registrieren.
Damit ein solches Beispiel sich kompilieren l&auml;&szlig;t, muss
die Datei <font color="#660099">WindowClosingAdapter.java</font> im
aktuellen Verzeichnis vorhanden sein. Sie befindet sich auf der DVD
zum Buch oder in <a href="k100152.html#windowclosingadapter">Listing 23.2</a>.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF">&nbsp;Hinweis&nbsp;</font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100201.html">&nbsp;&lt;&lt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100201.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100203.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100206.html">&nbsp;&gt;&gt;&nbsp;</a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
<td align="right">&copy; 1998, 2007 Guido Kr&uuml;ger &amp; Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>