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

## 32.7 TextArea

- 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
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de