import java.awt.*;
import java.awt.event.*;

// This appears in Core Web Programming from
// Prentice Hall Publishers, and may be freely used
// or adapted. 1997 Marty Hall, hall@apl.jhu.edu.

/** A Label that reverses its background and
 *  foreground colors when the mouse is over it.
 *  Java 1.1 Only
 */
public class ReversibleLabel extends Label {
  public ReversibleLabel(String text,
                         Color bgColor, Color fgColor) {
    super(text);
    MouseAdapter reverser =
      new MouseAdapter() {
        public void mouseEntered(MouseEvent event) {
          reverseColors();
        }

        public void mouseExited(MouseEvent event) {
          reverseColors(); // or mouseEntered(event);
        }
    };
    addMouseListener(reverser);
    setText(text);
    setBackground(bgColor);
    setForeground(fgColor);
  }

  protected void reverseColors() {
    Color fg = getForeground();
    Color bg = getBackground();
    setForeground(bg);
    setBackground(fg);
  }
}

