home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-03-20 | 5.4 KB | 203 lines |
- /*
- * @(#)Label.java 1.30 98/03/18
- *
- * Copyright 1995-1997 by Sun Microsystems, Inc.,
- * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
- * All rights reserved.
- *
- * This software is the confidential and proprietary information
- * of Sun Microsystems, Inc. ("Confidential Information"). You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Sun.
- */
- package java.awt;
-
- import java.awt.peer.LabelPeer;
-
- /**
- * A <code>Label</code> object is a component for placing text in a
- * container. A label displays a single line of read-only text.
- * The text can be changed by the application, but a user cannot edit it
- * directly.
- * <p>
- * For example, the code . . .
- * <p>
- * <hr><blockquote><pre>
- * setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
- * add(new Label("Hi There!"));
- * add(new Label("Another Label"));
- * </pre></blockquote><hr>
- * <p>
- * produces the following label:
- * <p>
- * <img src="images-awt/Label-1.gif"
- * ALIGN=center HSPACE=10 VSPACE=7>
- *
- * @version 1.30, 03/18/98
- * @author Sami Shaio
- * @since JDK1.0
- */
- public class Label extends Component {
-
- static {
- Toolkit.loadLibraries();
- initIDs();
- }
-
- /**
- * Indicates that the label should be left justified.
- */
- public static final int LEFT = 0;
-
- /**
- * Indicates that the label should be centered.
- */
- public static final int CENTER = 1;
-
- /**
- * Indicates that the label should be right justified.
- * @since JDK1.0t.
- */
- public static final int RIGHT = 2;
-
- /**
- * The text of this label.
- */
- String text;
-
- /**
- * The label's alignment. The default alignment is set
- * to be left justified.
- */
- int alignment = LEFT;
-
- private static final String base = "label";
- private static int nameCounter = 0;
-
- /*
- * JDK 1.1 serialVersionUID
- */
- private static final long serialVersionUID = 3094126758329070636L;
-
- /**
- * Constructs an empty label.
- */
- public Label() {
- this("", LEFT);
- }
-
- /**
- * Constructs a new label with the specified string of text,
- * left justified.
- * @param text the string that the label presents.
- */
- public Label(String text) {
- this(text, LEFT);
- }
-
- /**
- * Constructs a new label that presents the specified string of
- * text with the specified alignment.
- * <p>
- * Possible values for <code>alignment</code> are <code>Label.LEFT</code>,
- * <code>Label.RIGHT</code>, and <code>Label.CENTER</code>.
- * @param text the string that the label presents.
- * @param alignment the alignment value.
- */
- public Label(String text, int alignment) {
- this.name = base + nameCounter++;
- this.text = text;
- setAlignment(alignment);
- }
-
- /**
- * Creates the peer for this label. The peer allows us to
- * modify the appearance of the label without changing its
- * functionality.
- */
- public void addNotify() {
- peer = getToolkit().createLabel(this);
- super.addNotify();
- }
-
- /**
- * Gets the current alignment of this label. Possible values are
- * <code>Label.LEFT</code>, <code>Label.RIGHT</code>, and
- * <code>Label.CENTER</code>.
- * @see java.awt.Label#setAlignment
- */
- public int getAlignment() {
- return alignment;
- }
-
- /**
- * Sets the alignment for this label to the specified alignment.
- * Possible values are <code>Label.LEFT</code>,
- * <code>Label.RIGHT</code>, and <code>Label.CENTER</code>.
- * @param alignment the alignment to be set.
- * @exception IllegalArgumentException if an improper value for
- * <code>alignment</code> is given.
- * @see java.awt.Label#getAlignment
- */
- public synchronized void setAlignment(int alignment) {
- switch (alignment) {
- case LEFT:
- case CENTER:
- case RIGHT:
- this.alignment = alignment;
- LabelPeer peer = (LabelPeer)this.peer;
- if (peer != null) {
- peer.setAlignment(alignment);
- }
- return;
- }
- throw new IllegalArgumentException("improper alignment: " + alignment);
- }
-
- /**
- * Gets the text of this label.
- * @return the text of this label.
- * @see java.awt.Label#setText
- */
- public String getText() {
- return text;
- }
-
- /**
- * Sets the text for this label to the specified text.
- * @param text the text that this label presents.
- * @see java.awt.Label#getText
- */
- public synchronized void setText(String text) {
- if (text != this.text && (this.text == null
- || !this.text.equals(text))) {
- this.text = text;
- LabelPeer peer = (LabelPeer)this.peer;
- if (peer != null) {
- peer.setText(text);
- }
- }
- }
-
- /**
- * Returns the parameter string representing the state of this
- * label. This string is useful for debugging.
- * @return the parameter string of this label.
- */
- protected String paramString() {
- String str = ",align=";
- switch (alignment) {
- case LEFT: str += "left"; break;
- case CENTER: str += "center"; break;
- case RIGHT: str += "right"; break;
- }
- return super.paramString() + str + ",text=" + text;
- }
-
- /**
- * Initialize JNI field and method IDs
- */
- private static native void initIDs();
- }
-