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