if (!ha.equals(activeHotArea)) {
if ((ha == null && activeHotArea != null)  || (ha != null && !ha.equals(activeHotArea))) {
    protected void processMouseMotionEvent(MouseEvent e) {        switch (e.getID()) {            case MouseEvent.MOUSE_MOVED:                PMHotArea ha = getAreaUnder(e.getX(), e.getY());                if (!ha.equals(activeHotArea)) {                    if (activeHotArea != null) activeHotArea.onMouseExit(e);                    activeHotArea = ha;                    if (ha != null) {                        ha.onMouseOver(e);                        setCursor(ha.getCursor());                    } else {                        setCursor(Cursor.getDefaultCursor());                    }                    update();                }                break;        }    }