Package charvax.swing

Source Code of charvax.swing.JLabel

/* class JLabel
*
* Copyright (C) 2001-2003  R M Pitman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

package charvax.swing;

import charva.awt.Dimension;
import charva.awt.Insets;
import charva.awt.Point;
import charva.awt.Toolkit;
import charva.awt.event.KeyEvent;

/**
* A display area for a short text string.  A label cannot react to keyboard
* events and cannot receive the keyboard focus.
*/
public class JLabel
    extends JComponent
{
    /** Construct an empty label.
     */
    public JLabel() {
  this("", SwingConstants.LEFT);
    }

    /** Construct a JLabel with the specified text.
     */
    public JLabel(String text_) {
  this(text_, SwingConstants.LEFT);
    }

    /**
     * Use this constructor if you want to set the alignment to something
     * other than left-aligned.
     */
    public JLabel(String text_, int align_) {
  _labeltext = text_;
  _width = text_.length();
  switch (align_) {
      case SwingConstants.LEFT:
    _alignmentX = LEFT_ALIGNMENT;
    break;
      case SwingConstants.CENTER:
    _alignmentX = CENTER_ALIGNMENT;
    break;
      case SwingConstants.RIGHT:
    _alignmentX = RIGHT_ALIGNMENT;
    break;
  }
    }

    public void setLength(int length_) { _width = length_; }

    public Dimension minimumSize() {
  return this.getSize();
    }

    public void draw(Toolkit toolkit) {

  // Draw the border if it exists
  super.draw(toolkit);

  /* Get the absolute origin of this component.
   */
  Point origin = getLocationOnScreen();
  Insets insets = super.getInsets();
  origin.translate(insets.left, insets.top);

  toolkit.setCursor(origin);

  // we'll sort out justification and video-attributes etc later.
  StringBuffer buf = new StringBuffer(_labeltext);
  int textlength = _labeltext.length();
  if (_width > textlength) {
      for (int i=textlength; i<_width; i++)
    buf.append(' ');
  }
  else if (_width < textlength)
      buf.setLength(_width)// truncate

  int colorpair = getCursesColor();
  toolkit.addString(buf.toString(), 0, colorpair);
    }

    /**
     * This may be wrong, but it'll do for now.
     */
    public Dimension getSize() {
  return new Dimension(this.getWidth(), this.getHeight());
    }

    public int getWidth() {
  Insets insets = super.getInsets();
  return _width + insets.left + insets.right;
    }

    public int getHeight() {
  Insets insets = super.getInsets();
  return 1 + insets.top + insets.bottom;
    }

    public synchronized void setText(String label_) {
  _labeltext = label_;

  /* If the text is shorter than it was previously, blank out the
   * previous text.  In practice this means that the label grows
   * in length but never shrinks.
   */
  if (label_.length() > _width)
      _width = label_.length();

  /* If this component is already displayed, generate a PaintEvent
   * and post it onto the queue.
   */
  repaint();
    }

    public String getText() { return _labeltext; }

    /** This component will not receive focus when Tab or Shift-Tab is pressed.
     */
    public boolean isFocusTraversable() { return false; }

    /** The JLabel class ignores key events. A JLabel should never
     * have input focus anyway.
     */
    public void processKeyEvent(KeyEvent ke_) { }

    /**
     * The JLabel component never gets the keyboard input focus.
     */
    public void requestFocus() {}

    public void debug(int level_) {
  for (int i=0; i<level_; i++)
      System.err.print("    ");
  System.err.println("JLabel origin=" + _origin +
      " size=" + getSize() + " label=" + _labeltext);
    }

    public String toString() {
  return "JLabel: [" + getText() + "]";
    }

    //====================================================================
    // INSTANCE VARIABLES

    private String _labeltext;
    private int _width;

}
TOP

Related Classes of charvax.swing.JLabel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.