資源簡介
多線程-斷點續傳下載工具
功能描述:
實現同時下載多個文件,下載的過程中可以臨時終止下載,可以隨時繼續下載。
該源碼全是干貨。核心源碼一幕了然。

代碼片段和文件信息
package?Download;
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Component;
import?java.awt.Graphics;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.objectInputStream;
import?java.io.objectOutputStream;
import?java.io.Serializable;
import?java.util.ArrayList;
import?java.util.List;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
import?javax.swing.border.EmptyBorder;
public?class?Downloadframe?extends?Jframe?{
????private?static?final?int?THREAD_NUM?=?4;
????private?List?itemList?=?new?ArrayList();
????private?transient?InnerThread?innerThread?=?new?InnerThread();
????private?static?final?String?downloadInfoFile?=?“downloadInfo“;
????public?Downloadframe()?{
????????setSize(500?400);
????????add(createContentPane());
????????setLocationRelativeTo(null);
????????setResizable(false);
????????setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
????}
????public?void?init()?{
????????this.addWindowListener(new?WindowAdapter()?{
????????????@Override
????????????public?void?windowClosing(WindowEvent?e)?{
????????????????if?(itemList?!=?null?&&?itemList.size()?>?0)?{
????????????????????for?(DownloadItem?item?:?itemList)?{
????????????????????????if?(item.status?==?DownloadItem.STATUS_START)?{
????????????????????????????item.stop();
????????????????????????}
????????????????????}
????????????????}
????????????????save(Downloadframe.this);
????????????}
????????});
????????if?(itemList?!=?null?&&?itemList.size()?>?0)?{
????????????for?(DownloadItem?item?:?itemList)?{
????????????????item.setActionListener();
????????????}
????????}
????????innerThread?=?new?InnerThread();
????????innerThread.start();
????}
????private?Component?createContentPane()?{
????????JPanel?p?=?new?JPanel(new?BorderLayout());
????????p.setBackground(new?Color(35?31?32));
????????p.add(BorderLayout.CENTER?createTabPane());
????????return?p;
????}
????private?JPanel?createTabPane()?{
????????JPanel?p?=?new?JPanel(new?GridLayout(10?1?6?6));
????????p.setBackground(new?Color(35?31?32));
????????p.setBorder(new?EmptyBorder(8?8?8?8));
????????for?(int?i?=?0;?i?????????????DownloadItem?item?=?new?DownloadItem();
????????????//?label
????????????JLabel?label?=?new?JLabel();
????????????label.setForeground(Color.WHITE);
????????????item.label?=?label;
????????????//?button
????????????JButton?btn?=?new?JButton();
????????????btn.setForeground(new?Color(249?250?251));
????????????btn.setBackground(new?Color(220?31?36));
????????????item.button?=?btn;
????????????//?progressPanel
????????????ProgressPanel?pp?=?new?ProgressPanel();
????????????item.progressPanel?=?p
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-09-28?15:44??Download\
?????文件?????????226??2013-08-31?22:37??Download\.classpath
?????文件?????????367??2013-08-31?22:38??Download\.project
?????目錄???????????0??2014-09-28?15:44??Download\.settings\
?????文件?????????110??2013-09-13?00:23??Download\.settings\org.eclipse.core.resources.prefs
?????目錄???????????0??2014-09-28?15:44??Download\bin\
?????目錄???????????0??2014-09-28?15:44??Download\bin\Download\
?????文件????????1259??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件????????2156??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件????????2736??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件????????1051??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件?????????908??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件????????5252??2014-06-24?17:40??Download\bin\Download\Downloadfr
?????文件????????2005??2014-06-24?17:40??Download\bin\Download\DownloadInfo.class
?????文件????????2861??2014-06-24?17:40??Download\bin\Download\DownloadThread.class
?????文件?????????372??2013-08-31?22:48??Download\bin\readme
?????文件???????13122??2014-06-24?17:41??Download\downloadInfo
?????目錄???????????0??2014-09-28?15:44??Download\src\
?????目錄???????????0??2014-09-28?15:44??Download\src\Download\
?????文件????????8690??2013-09-03?17:09??Download\src\Download\Downloadfr
?????文件????????1869??2013-09-03?17:08??Download\src\Download\DownloadInfo.java
?????文件????????2073??2013-09-03?17:08??Download\src\Download\DownloadThread.java
?????文件?????????372??2013-08-31?22:48??Download\src\readme
評論
共有 條評論