亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? taskmanager.java

?? java版本的實(shí)現(xiàn)mp3搜索的完整程序。
?? JAVA
字號(hào):
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package biz.tbuy.huliqing.jloading;import biz.tbuy.huliqing.jloading.downloader.Config;import biz.tbuy.huliqing.jloading.downloader.ConfigFactory;import biz.tbuy.huliqing.jloading.downloader.XmlOper;import java.io.File;import java.util.List;import javax.swing.JTable;import javax.swing.SwingUtilities;import javax.swing.table.TableModel;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;/** * * @author huliqing */public class TaskManager {    private static TaskManager instance = new TaskManager();    private TaskManager(){        try {            if (tasksFile == null)                 tasksFile = new File("tasks.xml");            if (!tasksFile.exists()) {                tasksFile.createNewFile();                doc = XmlOper.newDocument();                Element eTasks = doc.createElement("tasks");                doc.appendChild(eTasks);                XmlOper.saveDocument(doc, tasksFile);            } else {                doc = XmlOper.getDocument(tasksFile);            }        } catch (Exception e) {            Elog.log("處理任務(wù)列表文件時(shí)遇到錯(cuò)誤:" + e.getMessage());        }    }        public static TaskManager getInstance() {        return instance;    }        // 任務(wù)表格    private JTable jTable;    private TaskTableModel ttm;    private Thread jTable_listener;        /** 設(shè)置所監(jiān)視的任務(wù)表格 */    public void setTable(JTable table) {        this.jTable = table;        this.ttm = getTableModel();        // 定時(shí)更新jTable1(每1000秒)        jTable_listener = new Thread(new Runnable(){            Runnable rp = new Runnable() {                public void run() {                    jTable.updateUI();                }            };            public void run() {                while (true) {                    SwingUtilities.invokeLater(rp);                    try {                        Thread.sleep(1000);                    } catch (Exception e) {                    }                  }            }        });        jTable_listener.start();    }        private TaskTableModel getTableModel() {        TableModel tm = jTable.getModel();        if (tm instanceof TaskTableModel) {            return ((TaskTableModel) tm);        }        return null;    }        /**     * 添加新的下載任務(wù),方法同時(shí)生成一個(gè)唯一任務(wù)id     * @param name 文件名     * @param url 下載源     * @param save 保存目錄     */    public synchronized void addTask(String name, String url, String save) {        String type = url.substring(url.lastIndexOf("."));        if (null == save || "".equals(save)) {            File musics = new File("musics");            if (!musics.exists()) {                musics.mkdirs();            }            save = musics.getAbsolutePath();        }        name = name.trim();        save = save + "\\" + name + type;        String taskid = String.valueOf(System.currentTimeMillis()) +                 "_" + String.valueOf(Math.random() * 10000);        saveTask(taskid, name, url, save);        ttm.addTaskModel(new TaskModel(taskid, name, url, save));        jTable.updateUI();    }        /**     * 添加新的下載任務(wù), 使用默認(rèn)的保存目錄     * @param name 文件名     * @param url 下載源     * @throws biz.tbuy.huliqing.jloading.JLoadingException     */    public void addTask(String name, String url) {        addTask(name, url, null);    }        /** 移除任務(wù),通過任務(wù)id */    public void removeTask(String taskid) {        ttm.removeByTaskid(taskid);    }        /** 開始下載任務(wù) */    public void startTask(TaskModel task) {        task.toStart();    }        public void pauseTask(TaskModel task) {        task.toPause();    }        /** 停止任務(wù) */    public void stopTask(TaskModel task) {        task.toStop();    }        /** 刪除任務(wù) */    public void deleteTasks(List<TaskModel> tasks) {        ttm.removeTasks(tasks); // 先從jTable1表格中移除        for (TaskModel tm : tasks) {            if (!tm.toDelete()) {                removeTask(tm.getTaskid());     // 除出窗格jTable                try {// 償試刪除狀態(tài)文件或未完成的下載文件                    tm.toStop();                    Config config = getConfig(tm.getTaskid());                     File processFile = new File(config.getSave() + "_");                    config.delete();                    processFile.delete();                } catch (Exception e) {                }             }            deleteConfig(tm.getTaskid());   // 刪除任務(wù)列表        }    }        // -------------------------------------------------- 載入任務(wù)或創(chuàng)建新任務(wù)記錄    private File tasksFile; // 任務(wù)列表文件的保存路徑    private Document doc;   // tasksFile的document對(duì)象        /** 載入任務(wù)列表 */    public void loadTasks() {            NodeList nTasks = doc.getElementsByTagName("task");            int len = nTasks.getLength();            for (int i = 0; i < len; i++) {                Element eTask = (Element) nTasks.item(i);                String config = eTask.getAttribute("config");                if (null != config && !"".equals(config)) {  // 優(yōu)先使用狀態(tài)文件                    try {                        Config c = ConfigFactory.loadConfig(config);                        ttm.addTaskModel(new TaskModel(c));                    } catch (Exception e) { // 如果狀態(tài)文件仍未建立                        String id = eTask.getAttribute("id");                        String name = eTask.getAttribute("name");                        String url = eTask.getAttribute("url");                        String save = eTask.getAttribute("save");                        ttm.addTaskModel(new TaskModel(id, name, url, save));                    }                 } else {                    String id = eTask.getAttribute("id");                    String name = eTask.getAttribute("name");                    String url = eTask.getAttribute("url");                    String save = eTask.getAttribute("save");                    ttm.addTaskModel(new TaskModel(id, name, url, save));                }            }    }        /** 保存下載文件的記錄 */    private void saveTask(String id, String name, String url, String save) {        try {            Element eTasks = doc.getDocumentElement();            Element eTask = doc.createElement("task");            eTask.setAttribute("id", id);            eTask.setAttribute("config", (save + "_"));            eTask.setAttribute("name", name);            eTask.setAttribute("url", url);            eTask.setAttribute("save", save);            eTasks.appendChild(eTask);            XmlOper.saveDocument(doc, tasksFile);        } catch (Exception e) {            Elog.log("保存創(chuàng)建任務(wù)信息時(shí)遇到錯(cuò)誤:" +                     this.getClass().getName() + ":saveTask");        }    }        /**     * 通過任務(wù)ID獲取其配置信息(狀態(tài)保存信息),如果Config信息還不存在,則返回null.     * Config文件只有在首次運(yùn)行下載任務(wù)之后才會(huì)創(chuàng)建。在任務(wù)首次運(yùn)行之前只會(huì)創(chuàng)建任務(wù)     * 的記錄,而不會(huì)創(chuàng)建任務(wù)的狀態(tài)文件(Config)     * @param taskid     * @return config     */    public Config getConfig(String taskid) {        String configPath = null;        Element e = doc.getDocumentElement();        NodeList nTasks = e.getElementsByTagName("task");        int len = nTasks.getLength();        for (int i = 0; i < len; i++) {            Element eTask = (Element) nTasks.item(i);            if (eTask.getAttribute("id").equals(taskid)) {                configPath = eTask.getAttribute("config");                break;            }        }        if (configPath != null && !configPath.equals("")) {            try {                return ConfigFactory.loadConfig(configPath);            } catch (Exception exception) {                return null;            }        }        return null;    }        /** 更新狀態(tài)文件的路徑保存信息, 只更新相應(yīng)的tasks.xml中的相同id,的config屬性*/    public void updateConfigPath(Config config) {        Element e = doc.getDocumentElement();        NodeList nTasks = e.getElementsByTagName("task");        int len = nTasks.getLength();        for (int i = 0; i < len; i++) {            Element eTask = (Element) nTasks.item(i);            if (eTask.getAttribute("id").equals(config.getId())) {                eTask.setAttribute("config", config.getConfigPath());                eTask.setAttribute("save", config.getSave());                break;            }        }        try {            XmlOper.saveDocument(doc, tasksFile);   // 更新后保存        } catch (Exception ex) {            Elog.log("更新Config文件路徑是遇到問題!" +                    "通常是由于遇到相同文件名時(shí)需要重新命名文件信息所致:" +                     getClass().getName());        }    }        /** 通過任務(wù)標(biāo)識(shí)ID刪除任務(wù)記錄 */    public void deleteConfig(String taskid) {        Element eTasks = doc.getDocumentElement();        NodeList nTasks = eTasks.getElementsByTagName("task");        int len = nTasks.getLength();        for (int i = 0; i < len; i++) {            Element eTask = (Element) nTasks.item(i);            if (eTask.getAttribute("id").equals(taskid)) {                eTasks.removeChild(eTask);                break;            }        }        try {            XmlOper.saveDocument(doc, tasksFile);        } catch (Exception e) {            Elog.log("移除任務(wù)時(shí)遇到問題:" + getClass().getName());        }    }    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕制服丝袜成人av | 精品一区二区国语对白| 亚洲综合色噜噜狠狠| 亚洲欧洲99久久| 国产精品久久免费看| 国产精品视频在线看| 国产视频亚洲色图| 中文字幕乱码久久午夜不卡 | 中文字幕不卡在线观看| 国产日韩欧美精品综合| 久久久精品蜜桃| 国产精品视频看| 国产精品网站在线播放| 国产欧美一区在线| 中文字幕一区二区三区色视频| 国产精品区一区二区三区| 国产精品午夜在线| 亚洲另类中文字| 亚洲一区二区不卡免费| 婷婷国产v国产偷v亚洲高清| 日本午夜精品一区二区三区电影 | 在线观看精品一区| 在线观看91视频| 777久久久精品| 精品福利一区二区三区免费视频| 久久久精品免费网站| 国产精品麻豆99久久久久久| 亚洲欧美日韩在线播放| 亚洲午夜免费视频| 日韩成人伦理电影在线观看| 精品一区二区三区香蕉蜜桃| 国产一区二区毛片| 91视频你懂的| 日韩一级黄色片| 欧美国产一区二区在线观看| 亚洲视频狠狠干| 日韩福利电影在线观看| 国产一区二区三区免费观看| 99久久99久久综合| 欧美日韩国产一区| 久久蜜桃av一区二区天堂| 亚洲精品欧美激情| 蜜乳av一区二区三区| 成人小视频免费观看| 欧亚一区二区三区| 精品国一区二区三区| 亚洲少妇30p| 老鸭窝一区二区久久精品| 99在线精品一区二区三区| 欧美精品丝袜中出| 国产女人aaa级久久久级| 亚洲自拍偷拍九九九| 极品美女销魂一区二区三区| 一本色道a无线码一区v| 日韩欧美综合在线| 亚洲伦在线观看| 久久99国内精品| 欧美主播一区二区三区美女| 久久久久久久综合色一本| 亚洲一区二区在线免费看| 国产福利91精品一区| 欧美日韩国产在线播放网站| 欧美激情一区三区| 日韩**一区毛片| 99re这里都是精品| 精品国产三级a在线观看| 亚洲精品免费视频| 国产精品69毛片高清亚洲| 欧美日韩一区二区三区不卡| 中文字幕一区在线| 经典三级在线一区| 欧美日本韩国一区二区三区视频| 国产三级久久久| 久久99热99| 欧美乱妇一区二区三区不卡视频| 国产精品久久福利| 国产一区二区按摩在线观看| 欧美妇女性影城| 亚洲日本成人在线观看| 国产成人在线视频免费播放| 91精选在线观看| 亚洲最新在线观看| 成人h版在线观看| 久久综合五月天婷婷伊人| 同产精品九九九| 欧美怡红院视频| 18涩涩午夜精品.www| 成人一区二区三区视频在线观看 | 视频一区二区不卡| 91小视频免费观看| 中文欧美字幕免费| 丁香激情综合五月| 久久亚洲春色中文字幕久久久| 欧美aaa在线| 5月丁香婷婷综合| 五月天一区二区三区| 欧美亚男人的天堂| 亚洲精品免费在线| 欧洲在线/亚洲| 亚洲影视资源网| 91黄视频在线观看| 亚洲色图制服丝袜| 91丨porny丨蝌蚪视频| 亚洲欧洲美洲综合色网| 成人动漫在线一区| 中文字幕第一区综合| 国产91丝袜在线18| 中文字幕电影一区| 91无套直看片红桃| 亚洲免费伊人电影| 91久久精品午夜一区二区| 亚洲激情在线播放| 欧洲日韩一区二区三区| 亚洲bdsm女犯bdsm网站| 欧美久久久久久蜜桃| 日韩av电影天堂| 欧美成人乱码一区二区三区| 九色|91porny| 国产香蕉久久精品综合网| 不卡一区在线观看| 亚洲欧美一区二区三区国产精品| 91丨porny丨中文| 亚洲一区二区av电影| 欧美精品在线观看一区二区| 捆绑变态av一区二区三区| 久久久久久毛片| 91网址在线看| 日韩成人av影视| 欧美tickling挠脚心丨vk| 国产精品一区二区不卡| 亚洲三级视频在线观看| 欧美色图天堂网| 蜜桃视频在线观看一区| 国产偷国产偷亚洲高清人白洁| 99麻豆久久久国产精品免费| 亚洲成人tv网| 日韩精品在线看片z| 成人av网址在线| 亚洲va欧美va人人爽午夜| 日韩精品专区在线影院观看 | 日韩一区二区电影在线| 国产盗摄一区二区三区| 亚洲欧洲综合另类| 欧美一区二区三区四区高清| 国产精品18久久久久久久久| 亚洲精品菠萝久久久久久久| 日韩一区二区在线免费观看| 国产成人精品1024| 亚洲五码中文字幕| 久久午夜免费电影| 欧美专区亚洲专区| 国产乱国产乱300精品| 亚洲精品国久久99热| 日韩精品中文字幕一区| 91视频一区二区| 国内精品久久久久影院薰衣草 | 国产精品福利一区二区| 欧美精品v国产精品v日韩精品| 国产麻豆精品一区二区| 亚洲精品你懂的| 久久久久亚洲蜜桃| 精品视频在线免费| 国产盗摄女厕一区二区三区| 亚洲超碰97人人做人人爱| 久久久亚洲综合| 欧美日韩精品一区视频| 成人h动漫精品| 九九国产精品视频| 亚洲大型综合色站| 国产精品久久久久久妇女6080| 日韩色在线观看| 欧美日韩一区二区三区不卡| 成人av在线影院| 精品中文字幕一区二区| 一区二区三区.www| 亚洲国产经典视频| 亚洲精品在线免费观看视频| 欧美系列日韩一区| 97久久精品人人做人人爽| 精品一区二区国语对白| 日韩专区欧美专区| 一区二区三区蜜桃| 国产精品每日更新| 久久久国际精品| 日韩视频在线观看一区二区| 欧美日韩国产高清一区| 91香蕉视频mp4| jiyouzz国产精品久久| 国产一区二区电影| 老司机精品视频在线| 午夜久久久久久久久| 一区二区三区av电影| 亚洲美女屁股眼交3| 亚洲欧洲性图库| 国产精品欧美久久久久一区二区| 久久免费偷拍视频| 久久先锋影音av鲁色资源 | 免费的国产精品| 日韩高清在线电影| 青青草国产成人99久久|