Labels

Bruce Eckel’s Thinking in Java Contents | Prev | Next

//: Label1.java
// Using labels
import java.awt.*;
import java.applet.*;
 
public class Label1 extends Applet {
  TextField t1 = new TextField("t1", 10);
  Label labl1 = new Label("TextField t1");
  Label labl2 = new Label("                   ");
  Label labl3 = new Label("                    ",
    Label.RIGHT);
  Button b1 = new Button("Test 1");
  Button b2 = new Button("Test 2");
  public void init() {
    add(labl1); add(t1);
    add(b1); add(labl2);
    add(b2); add(labl3);
  }
  public boolean action (Event evt, Object arg) {
    if(evt.target.equals(b1))
      labl2.setText("Text set into Label");
    else if(evt.target.equals(b2)) {
      if(labl3.getText().trim().length() == 0)
        labl3.setText("labl3");
      if(labl3.getAlignment() == Label.LEFT)
        labl3.setAlignment(Label.CENTER);
      else if(labl3.getAlignment()==Label.CENTER)
        labl3.setAlignment(Label.RIGHT);
      else if(labl3.getAlignment() == Label.RIGHT)
        labl3.setAlignment(Label.LEFT);
    }
    else
      return super.action(evt, arg);
    return true;
  }
} ///:~ 

The
first use of the label is the most typical: labeling a
TextField
or
TextArea.
In the second part of the example, a bunch of empty spaces are reserved and
when you press the “Test 1” button
setText( )
is used to insert text into the field. Because a number of blank spaces do not
equal the same number of characters (in a proportionally-spaced
font) you’ll see that the text gets truncated when inserted into the label.

You
might think that you could create an empty label and then later put text in it
with
setText( ).
However, you cannot put text into an empty label – presumably because it
has zero width – so creating a label with no text seems to be a useless
thing to do. In the example above, the “blank” label is filled with
empty spaces so it has enough width to hold text that’s placed inside
later.

Similarly,
setAlignment( )
has
no effect on a label that you’d typically create with text in the
constructor. The label width is the width of the text, so changing the
alignment doesn’t do anything. However, if you start with a long label
and then change it to a shorter one you can see the effect of the alignment.

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read