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

📄 util.java

📁 java+eclipse做的TTPlayer
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            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.baidu.com/s?wd=" + URLEncoder.encode("filetype:lrc " + title + "-" + artist, "GBK"));            get.addRequestHeader("Host", "www.baidu.com");            get.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11");            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("Referer", "http://www.baidu.com/");            get.addRequestHeader("Connection", "keep-alive");            int i = http.executeMethod(get);            String temp = getString(get.getResponseBodyAsStream());            get.releaseConnection();//        System.out.println("TEMP="+temp);            list.addAll(parseSearchResult(temp));        } catch (IOException ex) {        }        return list;    }    /**     * 从一个int值得到它所代表的字节数组     * @param i 值      * @return 字节数组     */    public static byte[] getBytesFromInt(int i) {        byte[] data = new byte[4];        data[0] = (byte) (i & 0xff);        data[1] = (byte) ((i >> 8) & 0xff);        data[2] = (byte) ((i >> 16) & 0xff);        data[3] = (byte) ((i >> 24) & 0xff);        return data;    }    /**     * 把字符串转成系统预设的编码     * @param source     * @return     */    public static String convertString(String source) {        return convertString(source, Config.getConfig().getEncoding());    }    /**     * 一个简便的方法,把一个字符串的转成另一种字符串     * @param source 源字符串     * @param encoding 编码     * @return 新的字符串     */    public static String convertString(String source, String encoding) {        try {            byte[] data = source.getBytes("ISO8859-1");            return new String(data, encoding);        } catch (UnsupportedEncodingException ex) {            return source;        }    }    /**     * 转码的一个方便的方法     * @param source 要转的字符串     * @param sourceEnc 字符串原来的编码     * @param distEnc 要转成的编码     * @return 转后的字符串     */    public static String convertString(String source, String sourceEnc, String distEnc) {        try {            byte[] data = source.getBytes(sourceEnc);            return new String(data, distEnc);        } catch (UnsupportedEncodingException ex) {            return source;        }    }    /**     * 从传进来的数得到这个数组     * 组成的整型的大小     * @param data 数组     * @return 整型     */    public static int getInt(byte[] data) {        if (data.length != 4) {            throw new IllegalArgumentException("数组长度非法,要长度为4!");        }        return (data[0] & 0xff) | ((data[1] & 0xff) << 8) | ((data[2] & 0xff) << 16) | ((data[3] & 0xff) << 24);    }    /**     * 从传进来的字节数组得到     * 这个字节数组能组成的长整型的结果     * @param data 字节数组     * @return 长整型     */    public static long getLong(byte[] data) {        if (data.length != 8) {            throw new IllegalArgumentException("数组长度非法,要长度为4!");        }        return (data[0] & 0xff) |                ((data[1] & 0xff) << 8) |                ((data[2] & 0xff) << 16) |                ((data[3] & 0xff) << 24) |                ((data[4] & 0xff) << 32) |                ((data[5] & 0xff) << 40) |                ((data[6] & 0xff) << 48) |                ((data[7] & 0xff) << 56);    }    /**     * 得到相应的文件选择框,因为要求不一定一样     * @param filter      * @param canDir      * @return     */    public static JFileChooser getFileChooser(FileNameFilter filter, int mode) {        jfc.resetChoosableFileFilters();        jfc.setFileSelectionMode(mode);        jfc.setAcceptAllFileFilterUsed(false);        jfc.setFileFilter(filter);        jfc.setFileHidingEnabled(true);        return jfc;    }    /**     * 根据一个文件的全路径得到它的扩展名     * @param path 全路径     * @return  扩展名     */    public static String getExtName(String path) {        return path.substring(path.lastIndexOf(".") + 1);    }    /**     * 得到两个矩形的距离     * @param rec1 矩形1     * @param rec2 矩形2     * @return 距离     */    public static int getDistance(Rectangle rec1, Rectangle rec2) {        if (rec1.intersects(rec2)) {            return Integer.MAX_VALUE;        }        int x1 = (int) rec1.getCenterX();        int y1 = (int) rec1.getCenterY();        int x2 = (int) rec2.getCenterX();        int y2 = (int) rec2.getCenterY();        int dis1 = Math.abs(x1 - x2) - rec1.width / 2 - rec2.width / 2;        int dis2 = Math.abs(y1 - y2) - rec1.height / 2 - rec2.height / 2;        return Math.max(dis1, dis2) - 1;    }    /**     * 根据一些条件,统一生成一个滚动条     * @param min 最小值      * @param max 最大值     * @param value 当前值     * @param ball1 球1     * @param ball2 球2     * @param ball3 球3     * @param bg1 背景1     * @param bg2 背景2     * @param listener 监听器     * @param orientation 方向     * @return 滚动条     */    public static YOYOSlider createSlider(int min, int max, int value,            Image ball1, Image ball2, Image ball3, Image bg1,            Image bg2, ChangeListener listener, int orientation) {        YOYOSlider yoyo = new YOYOSlider();        YOYOSliderUI ui = new YOYOSliderUI(yoyo);        yoyo.setOpaque(false);        yoyo.setMaximum(max);        yoyo.setMinimum(min);        yoyo.setValue(value);        yoyo.setOrientation(orientation);        ui.setThumbImage(ball1);        ui.setThumbOverImage(ball2);        ui.setThumbPressedImage(ball3);        ui.setBackgroundImages(bg1);        ui.setActiveBackImage(bg2);        yoyo.setUI(ui);        yoyo.addChangeListener(listener);        return yoyo;    }    /**     * 根据一些参数快速地构造出按钮来     * 这些按钮从外观上看都是一些特殊的按钮     * @param name 按钮图片的相对地址     * @param cmd 命令     * @param listener 监听器     * @return 按钮     */    public static JButton createJButton(String name, String cmd, ActionListener listener) {        Image[] icons = Util.getImages(name, 3);        JButton jb = new JButton();        jb.setBorderPainted(false);        jb.setFocusPainted(false);        jb.setContentAreaFilled(false);        jb.setDoubleBuffered(true);        jb.setIcon(new ImageIcon(icons[0]));        jb.setRolloverIcon(new ImageIcon(icons[1]));        jb.setPressedIcon(new ImageIcon(icons[2]));        jb.setOpaque(false);        jb.setFocusable(false);        jb.setActionCommand(cmd);        jb.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));        jb.addActionListener(listener);        return jb;    }    /**     * 根据一些参数快速地构造出按钮来     * 这些按钮从外观上看都是一些特殊的按钮     * @param name 按钮图片的相对地址     * @param cmd 命令     * @param listener 监听器     * @param selected 是否被选中了     * @return 按钮     */    public static JToggleButton createJToggleButton(String name, String cmd, ActionListener listener, boolean selected) {        Image[] icons = Util.getImages(name, 3);        JToggleButton jt = new JToggleButton();        jt.setBorder(null);        jt.setContentAreaFilled(false);        jt.setFocusPainted(false);        jt.setDoubleBuffered(true);        jt.setIcon(new ImageIcon(icons[0]));        jt.setRolloverIcon(new ImageIcon(icons[1]));        jt.setSelectedIcon(new ImageIcon(icons[2]));        jt.setOpaque(false);        jt.setFocusable(false);        jt.setActionCommand(cmd);        jt.setSelected(selected);        jt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));        jt.addActionListener(listener);        return jt;    }    /**     * 得到一系列的图片,以数字递增做为序列的     * @param who 图片的基名     * @param count 数量     * @return 图片数组     */    public static Image[] getImages(String who, int count) {        Image[] imgs = new Image[3];        MediaTracker mt = new MediaTracker(panel);        Toolkit tk = Toolkit.getDefaultToolkit();        for (int i = 1; i <= count; i++) {            URL url = Util.class.getResource("/com/hadeslee/yoyoplayer/pic/" + who + i + ".png");            imgs[i - 1] = tk.createImage(url);            mt.addImage(imgs[i - 1], i);        }        try {            mt.waitForAll();        } catch (Exception exe) {            exe.printStackTrace();        }        return imgs;    }    /**     * 根据某个URL得到这个URL代表的图片     * 并且把该图片导入内存     * @param name URL     * @return 图片     */    public static Image getImage(String name) {        URL url = Util.class.getResource("/com/hadeslee/yoyoplayer/pic/" + name);        Image im = Toolkit.getDefaultToolkit().createImage(url);        try {            MediaTracker mt = new MediaTracker(panel);            mt.addImage(im, 0);            mt.waitForAll();        } catch (Exception exe) {            exe.printStackTrace();        }        return im;    }    /**     * 根据一个比例得到两种颜色之间的渐变色     * @param c1 第一种颜色     * @param c2 第二种颜色     * @param f 比例     * @return 新的颜色     */    public static Color getGradientColor(Color c1, Color c2, float f) {        int deltaR = c2.getRed() - c1.getRed();        int deltaG = c2.getGreen() - c1.getGreen();        int deltaB = c2.getBlue() - c1.getBlue();        int r1 = (int) (c1.getRed() + f * deltaR);        int g1 = (int) (c1.getGreen() + f * deltaG);        int b1 = (int) (c1.getBlue() + f * deltaB);        Color c = new Color(r1, g1, b1);        return c;    }    /**     * 得到两种颜色的混合色     * @param c1 第一种颜色     * @param c2 第二种颜色     * @return 混合色     */    public static Color getColor(Color c1, Color c2) {        int r = (c2.getRed() + c1.getRed()) / 2;        int g = (c2.getGreen() + c1.getGreen()) / 2;        int b = (c2.getBlue() + c1.getBlue()) / 2;        return new Color(r, g, b);    }

⌨️ 快捷键说明

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