@Override
    public JmeCursor load(AssetInfo info) throws IOException {

        isIco = false;
        isAni = false;
        isCur = false;

        isIco = info.getKey().getExtension().equals("ico");
        if (!isIco) {
            isCur = info.getKey().getExtension().equals("cur");
            if (!isCur) {
                isAni = info.getKey().getExtension().equals("ani");
            }
        }
        if (!isAni && !isIco && !isCur) {
            throw new IllegalArgumentException("Cursors supported are .ico, .cur or .ani");
        }

        InputStream in = null;
        try {
            in = info.openStream();
            return loadCursor(in);
        } finally {
            if (in != null) {
                in.close();
            }
        }
    }
Loads and return a cursor file of one of the following format: .ani, .cur and .ico.
@param info The {@link AssetInfo} describing the cursor file.
@return A JmeCursor representation of the LWJGL's Cursor.
@throws IOException if the file is not found.
jme3-desktop/src/main/java/com/jme3/cursors/plugins/CursorLoader.java