public void update() { if (status == ENTERING) { overlayAlpha += (int) alphaStep; y -= (int) yStep; if (overlayAlpha >= MAX_OVERLAY_APLHA || y <= FRAME_Y) { overlayAlpha = MAX_OVERLAY_APLHA; y = FRAME_Y; status = DONE_ENTERING; } overlayColor = new Color(0, 0, 0, overlayAlpha); } else if (status == DONE_ENTERING) { status = WAITING; } else if (status == CANCELING) { overlayAlpha -= (int) alphaStep; y += (int) yStep; if (overlayAlpha <= 0 || y >= References.HEIGHT) { overlayAlpha = 0; y = References.HEIGHT; status = CANCELED; } overlayColor = new Color(0, 0, 0, overlayAlpha); } else if (status == CANCELED) { gsm.set(lastState); } frame.setPosition(x, y); frame.update(); }