package org.limewire.ui.swing.components; import java.awt.Component; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /** * A mouse listener that displays a rollover or hover cursor when the mouse * enters the component on which the listener has been installed. */ public class RolloverCursorListener extends MouseAdapter { private final Cursor rolloverCursor; /** * Constructs a RolloverCursorListener with the default rollover cursor. * The default rollover cursor is Cursor.HAND_CURSOR. */ public RolloverCursorListener() { this(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } /** * Constructs a RolloverCursorListener with the specified rollover cursor. */ public RolloverCursorListener(Cursor rolloverCursor) { this.rolloverCursor = rolloverCursor; } /** * Installs the listener on the specified component. */ public void install(Component comp) { comp.addMouseListener(this); comp.addMouseMotionListener(this); } /** * Uninstalls the listener on the specified component. */ public void uninstall(Component comp) { comp.removeMouseListener(this); comp.removeMouseMotionListener(this); } @Override public void mouseEntered(MouseEvent e) { e.getComponent().setCursor(rolloverCursor); } @Override public void mouseExited(MouseEvent e) { e.getComponent().setCursor(Cursor.getDefaultCursor()); } @Override public void mouseMoved(MouseEvent e) { e.getComponent().setCursor(rolloverCursor); } }