Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 3. Auflage
 <<    <     >    >>   API  Kapitel 32 - AWT-Dialogelemente

32.7 TextArea



Im Gegensatz zur Klasse TextField, bei der der Text auf eine einzige Zeile beschränkt ist, können mit der Klasse TextArea mehrzeilige Textfelder erzeugt werden. Zusätzlich kann der Text in alle Richtungen scrollen, so daß auch größere Texte bearbeitet werden können.

public TextArea()

public TextArea(int rows, int cols)

public TextArea(String text)

public TextArea(String text, int rows, int cols)

public TextArea(String text, int rows, int cols, int scroll)
java.awt.TextArea

Der parameterlose Konstruktor erzeugt ein leeres TextArea-Objekt in einer vom System vorgegebenen Größe. Werden die Parameter rows und cols vorgegeben, legen sie die Anzahl der sichtbaren Zeilen und Spalten fest. Mit dem Parameter text kann die zu editierende Zeichenkette übergeben werden. Mit Hilfe des zusätzlichen Parameters scroll kann die Ausstattung der TextArea mit Schiebereglern festgelegt werden. Dazu stellt TextArea die Konstanten SCROLLBARS_BOTH, SCROLLBARS_VERTICAL_ONLY, SCROLLBARS_HORIZONTAL_ONLY und SCROLLBARS_NONE zur Verfügung, die als Argument übergeben werden können.

Ebenso wie TextField ist auch TextArea aus der Klasse TextComponent abgeleitet und besitzt mit Ausnahme von setEchoCharacter und getEchoCharacter alle Methoden, die bereits bei TextField vorgestellt wurden. Zusätzlich gibt es einige Methoden, mit denen Teile des Textes verändert werden können:

public void insert(String str, int pos)

public void append(String str)

public void replaceRange(String text, int start, int end)
java.awt.TextArea

Mit insert wird die Zeichenkette str an der Position pos eingefügt, und der dahinter stehende Text wird entsprechend nach hinten geschoben. append hängt den als Argument übergebenen Text hinten an den bestehenden Text an, und replaceRange ersetzt den Text zwischen start und end durch die übergebene Zeichenkette text.

Ein Objekt der Klasse TextArea sendet Text-Events, so wie es bei TextField beschrieben wurde. Action-Events werden dagegen nicht gesendet, denn die ENTER-Taste erzeugt eine Zeilenschaltung. Ein zum folgenden Beispiel passender Event-Handler könnte so realisiert werden:

001 /* TextArea2.inc */
002 
003 public void textValueChanged(TextEvent event)
004 {
005   TextArea tf = (TextArea)event.getSource();
006   System.out.println("textValueChanged: "+tf.getText());
007 }
TextArea2.inc
Listing 32.9: Behandlung von Text-Events bei der Komponente TextArea

Das Beispielprogramm zum Testen der TextArea-Komponente sieht so aus:

001 /* TextArea1.inc */
002 
003 private void customizeLayout(Panel panel)
004 {
005   panel.setLayout(new FlowLayout(FlowLayout.LEFT));
006   TextArea ta = new TextArea(10,40);
007   ta.addTextListener(this);
008   panel.add(ta);
009 }
TextArea1.inc
Listing 32.10: Verwendung einer TextArea-Komponente

Abbildung 32.7: Ein Dialog mit einem TextArea-Objekt


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0.1
 <<    <     >    >>   API  © 1998-2003 Guido Krüger, http://www.javabuch.de