⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.java

📁 java+eclipse做的TTPlayer
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    /**     * 一个简便地获取字符串高度的方法     * @param s 字符串     * @param g 画笔     * @return 高度     */    public static int getStringHeight(String s, Graphics g) {        return (int) g.getFontMetrics().getStringBounds(s, g).getHeight();    }    /**     * 一个简便地获取字符串宽度的方法     * @param s 字符串     * @param g 画笔     * @return 宽度     */    public static int getStringWidth(String s, Graphics g) {        return (int) g.getFontMetrics().getStringBounds(s, g).getWidth();    }    /**     * 自定义的画字符串的方法,从字符串的左上角开始画     * 不是JAVA的从左下角开始的画法     * @param g 画笔     * @param s 字符串     * @param x X坐标     * @param y Y坐标     */    public static void drawString(Graphics g, String s, int x, int y) {        FontMetrics fm = g.getFontMetrics();        int asc = fm.getAscent();        g.drawString(s, x, y + asc);    }    /**     * 一个简便的让字符串对于某点居中的画法     * @param g 画笔     * @param s 字符串     * @param x X坐标     * @param y Y坐标     */    public static void drawStringCenter(Graphics g, String s, int x, int y) {        FontMetrics fm = g.getFontMetrics();        int asc = fm.getAscent();        int width = getStringWidth(s, g);        g.drawString(s, x - width / 2, y + asc);    }    /**     * 一个便捷的方法,画字符串右对齐的方法     * @param g 画笔     * @param s 字符串     * @param x 右对齐的X座标     * @param y 右对齐的Y座标     */    public static void drawStringRight(Graphics g, String s, int x, int y) {        FontMetrics fm = g.getFontMetrics();        int asc = fm.getAscent();        int width = getStringWidth(s, g);        g.drawString(s, x - width, y + asc);    }    /**     * 得到文件的格式     * @param f 文件     * @return 格式     */    public static String getType(File f) {        String name = f.getName();        return name.substring(name.lastIndexOf(".") + 1);    }    /**     * 根据文件名得到歌曲的名字     * @param f 文件名     * @return 歌曲名     */    public static String getSongName(File f) {        String name = f.getName();        name = name.substring(0, name.lastIndexOf("."));        return name;    }    /**     * 根据文件名得到歌曲的名字     * @param name 文件名     * @return 歌曲名     */    public static String getSongName(String name) {        try {            int index = name.lastIndexOf(File.separator);            name = name.substring(index + 1, name.lastIndexOf("."));            return name;        } catch (Exception exe) {            return name;        }    }    /**     * 根据歌曲的信息去下载歌词内容     * @param fileName 文件本名     * @param info 歌曲信息     * @return 歌词内容     */    public static String getLyric(PlayListItem info) throws IOException {        log.log(Level.INFO, "进来找歌词了");        String ly = getLyricBaidu(info);        if (ly != null) {            log.log(Level.INFO, "百度上搜索到了...");        }        return ly;//        if (ly == null) {//            log.log(Level.INFO, "JPWY没有搜到,再去百度搜");//            ly = getLyricBaidu(info);//            log.log(Level.INFO, ly);//            return ly;//        } else {//            log.log(Level.INFO, "JPWY搜到了");//            log.log(Level.INFO, ly);//            return ly;//        }    }//    /**//     * 根据地址去取得歌词的内容//     * 此方法专用于JPWY的内容//     * @param url 地址//     * @return 内容//     * @throws java.io.IOException//     *///    private static String getJPWY_Lyric(String url) throws IOException {//        HttpClient http = new HttpClient();//        Config config = Config.getConfig();//        if (config.isUseProxy()) {//            if (config.getProxyUserName() != null && config.getProxyPwd() != null) {//                http.getState().setProxyCredentials(//                        new AuthScope(config.getProxyHost(), Integer.parseInt(config.getProxyPort())),//                        new UsernamePasswordCredentials(config.getProxyUserName(), config.getProxyPwd()));//            }//            http.getHostConfiguration().setProxy(config.getProxyHost(),//                    Integer.parseInt(config.getProxyPort()));//        }//        http.getParams().setContentCharset("GBK");//        url = getJPWY_Lyric_URL(url);//        GetMethod get = new GetMethod(url);//        get.addRequestHeader("Host", "www.jpwy.net");//        get.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9");//        get.addRequestHeader("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");//        get.addRequestHeader("Accept-Language", "zh-cn,zh;q=0.5");//        get.addRequestHeader("Keep-Alive", "300");//        get.addRequestHeader("Connection", "keep-alive");//        get.addRequestHeader("Referer", "http://www.jpwy.net/gc/");//        int i = http.executeMethod(get);//        String s = getString(get.getResponseBodyAsStream());//        System.out.println("s=" + s);//        get.releaseConnection();//        return s;//    }//    /**//     * 得到精品网页里面更改过后的地址解析出来的LRC地址//     * 2008年4月3日更新//     * @param url 下载地址//     * @return LRC地址//     * @throws java.io.IOException//     *///    private static String getJPWY_Lyric_URL(String url) throws IOException {////        String temp="action=\"http://fanwen.jpwy.net/gc/down.php?id=1256&ps=15&ti=%B7%C9%CE%E8&key=9dbd5a10b4a9bdfcd4e3d7743bc19f2d1207207778\" method";//        HttpClient http = new HttpClient();//        Config config = Config.getConfig();//        if (config.isUseProxy()) {//            if (config.getProxyUserName() != null && config.getProxyPwd() != null) {//                http.getState().setProxyCredentials(//                        new AuthScope(config.getProxyHost(), Integer.parseInt(config.getProxyPort())),//                        new UsernamePasswordCredentials(config.getProxyUserName(), config.getProxyPwd()));//            }//            http.getHostConfiguration().setProxy(config.getProxyHost(),//                    Integer.parseInt(config.getProxyPort()));//        }//        http.getParams().setContentCharset("GBK");//        GetMethod get = new GetMethod("http://www.jpwy.net/gc/" + url);//        get.addRequestHeader("Host", "www.jpwy.net");//        get.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9");//        get.addRequestHeader("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");//        get.addRequestHeader("Accept-Language", "zh-cn,zh;q=0.5");//        get.addRequestHeader("Keep-Alive", "300");//        get.addRequestHeader("Connection", "keep-alive");//        get.addRequestHeader("Referer", "http://www.jpwy.net/gc/");//        int i = http.executeMethod(get);//        String content = getString(get.getResponseBodyAsStream());//        get.releaseConnection();//        Matcher m = Pattern.compile("(?<=action=\").*?(?=\" method)").matcher(content);//        if (m.find()) {//            return m.group();//        }//        return content;//    }//    /**//     * 从一个网页源码里面分析出歌词的下载地址//     * @param content 网页源码//     * @return 下载地址//     *///    private static List<String> parseURLContent(String content) {//        Matcher m = Pattern.compile("(?<=list.gif width=16 height=16></A></TD><TD align=middle><A href=\").*?(?=\" target=_blank\\>\\<img border=0 src=image\\/lrc.gif>)").matcher(content);////        Matcher m = Pattern.compile("(?<=list.gif width=16 height=16></A></TD><TD align=middle><A href=\").*?(?=\"\\>\\<img border=0 src=image\\/lrc.gif>)").matcher(content);//        List<String> list = new ArrayList<String>();//        while (m.find()) {//            String url = m.group();//            list.add(url);//            log.log(Level.INFO, "下载歌词的地址是:" + url);//        }//        return list;//    }//    private static List<SearchResult> parseURLContentToSearchResult(String content) {//        Matcher m = Pattern.compile("(?<=<TD class=r1>).*?(?=src=image/lrc.gif></A></TD></TR>)").matcher(content);//        List<SearchResult> list = new ArrayList<SearchResult>();//        while (m.find()) {//            String s = m.group();//            System.out.println("searchResult=" + s);//            SearchResult result = parseSearchResult(s);//            log.log(Level.INFO, String.valueOf(result));//            if (result != null) {//                list.add(result);//            }//        }//        return list;//    }//    private static SearchResult parseSearchResult(String content) {//        String title = null;//        String artist = null;//        final StringBuilder url = new StringBuilder();//        Matcher m = Pattern.compile("(?<=target=_blank>).*?(?=</A></TD><TD>&nbsp;</TD>)").matcher(content);//        if (m.find()) {//            title = m.group();//        }//        m = Pattern.compile("(?<=singer=([%[0-9a-fA-F]{2}|[\\w\\p{Punct}]]){0,100}\">).*?(?=</A></TD><TD>)").matcher(content);//        if (m.find()) {//            artist = m.group();//        }//        m = Pattern.compile("(?<=list.gif width=16 height=16></A></TD><TD align=middle><A href=\").*?(?=\" target=_blank\\>\\<img border=0)").matcher(content);//        if (m.find()) {//            String findURl = m.group();//            log.log(Level.INFO, "findURL=" + findURl);//            url.append(findURl);//        } else {//            log.log(Level.INFO, "没有匹配的findURL");//        }//        log.log(Level.INFO, "title=" + title + ",artist=" + artist);//        if (url.length() == 0) {//            return null;//        } else {//            return new SearchResult(artist, title, new SearchResult.Task() {////                public String getLyricContent() throws IOException {//                    return Util.getJPWY_Lyric(url.toString());//                }//            });//        }//    }//    /**//     * 根据歌名分析去得查询到的网页内容//     * 并原封不动把网页内容返回做为分析的数据//     * @param artist 歌手名,可能为空//     * @param title 歌曲名,不能为空//     * @throws java.io.IOException//     *///    private static String getSearchContent(String artist, String title) throws IOException {//        HttpClient http = new HttpClient();//        Config config = Config.getConfig();//        if (config.isUseProxy()) {//            log.log(Level.INFO, "使用了代理了:host:" + config.getProxyHost() + ",port:" + config.getProxyPort());//            if (config.getProxyUserName() != null && config.getProxyPwd() != null &&//                    !config.getProxyUserName().equals("") &&//                    !config.getProxyPwd().equals("")) {////                http.getState().setProxyCredentials(//                        new AuthScope(config.getProxyHost(), Integer.parseInt(config.getProxyPort())),//                        new UsernamePasswordCredentials(config.getProxyUserName(), config.getProxyPwd()));//            }//            http.getHostConfiguration().setProxy(config.getProxyHost(),//                    Integer.parseInt(config.getProxyPort()));//        }//        http.getParams().setContentCharset("GBK");//        PostMethod get = postMethod();//        if (artist == null || artist.equals("")) {//            get.addParameter("song", title);//        } else {//否则就把两个都加上,看能不能搜到////            get.addParameter("singer", artist);//            get.addParameter("song", title);//        }//        int i = http.executeMethod(get);//        String s = getString(get.getResponseBodyAsStream());//        get.releaseConnection();//        return s;//    }    /**     * 根据歌名分析去得查询到的网页内容,也可能会为     * 但尽最大可能去搜索到匹配的内容      * @param info 歌曲信息     * @return 网页内容     * @throws java.io.IOException     *///    private static String getSearchContent(PlayListItem info) throws IOException {//        String urlContent = null;//        String song = info.getTitle();//        String singer = info.getArtist();//        HttpClient http = new HttpClient();//        Config config = Config.getConfig();//        if (config.isUseProxy()) {//            if (config.getProxyUserName() != null && config.getProxyPwd() != null) {//                http.getState().setProxyCredentials(//                        new AuthScope(config.getProxyHost(), Integer.parseInt(config.getProxyPort())),//                        new UsernamePasswordCredentials(config.getProxyUserName(), config.getProxyPwd()));//            }//            http.getHostConfiguration().setProxy(config.getProxyHost(),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -