Bruce Eckel’s Thinking in Java | Contents | Prev | Next |
TextField
is a one line area that allows the user to enter and edit text.
TextField
is
inherited from TextComponent,
which
lets you select text, get the selected text as a
String,
get or set the text, and set whether the
TextField
is editable, along with other associated methods that you can find in your
online reference. The following example demonstrates some of the functionality
of a
TextField;
you can see that the method names are fairly obvious:
//: TextField1.java // Using the text field control import java.awt.*; import java.applet.*; public class TextField1 extends Applet { Button b1 = new Button("Get Text"), b2 = new Button("Set Text"); TextField t = new TextField("Starting text", 30); String s = new String(); public void init() { add(b1); add(b2); add(t); } public boolean action (Event evt, Object arg) { if(evt.target.equals(b1)) { getAppletContext().showStatus(t.getText()); s = t.getSelectedText(); if(s.length() == 0) s = t.getText(); t.setEditable(true); } else if(evt.target.equals(b2)) { t.setText("Inserted by Button 2: " + s); t.setEditable(false); } // Let the base class handle it: else return super.action(evt, arg); return true; // We've handled it here } } ///:~
are several ways to construct a
TextField;
the one shown here provides an initial string and sets the size of the field in
characters.
button 1 either gets the text you’ve selected with the mouse or it gets
all the text in the field and places the result in
String
s
.
It also allows the field to be edited. Pressing button 2 puts a message and
s
into the text field and prevents the field from being edited (although you can
still select the text). The editability of the text is controlled by passing setEditable( )
a
true
or
false.