private void handleMouseEvent(MouseEvent mouseEvent) {
        switch (mouseEvent.getID()) {
            case MouseEvent.MOUSE_CLICKED:
                handleMouseClickedEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_PRESSED:
                handleMousePressedEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_RELEASED:
                handleMouseReleasedEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_ENTERED:
                handleMouseEnteredEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_EXITED:
                handleMouseExitedEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_DRAGGED:
                handleMouseDraggedEvent(mouseEvent);
                break;
            case MouseEvent.MOUSE_MOVED:
                handleMouseMovedEvent(mouseEvent);
                break;
            default:
                throw new AssertionError();
        }
    }