swing做前臺界面。后臺使用java.net中的HTTPConnection下載就OK。下載可以用getInputStream()獲取數(shù)據(jù),然后寫入文件。只提供思路,無代碼。不搞java好多年……
向陽網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,向陽網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為向陽上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的向陽做網(wǎng)站的公司定做!
代碼如下:import java.awt.Color; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JProgressBar; import javax.swing.JWindow; @SuppressWarnings("serial") public class Demo extends JWindow implements Runnable { // 定義加載窗口大小 public static final int LOAD_WIDTH = 455; public static final int LOAD_HEIGHT = 295; // 獲取屏幕窗口大小 public static final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; public static final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; // 定義進度條組件 public JProgressBar progressbar; // 定義標簽組件 public JLabel label; // 構(gòu)造函數(shù) public Demo() { // 創(chuàng)建標簽,并在標簽上放置一張圖片 label = new JLabel(new ImageIcon("images/background.jpg")); label.setBounds(0, 0, LOAD_WIDTH, LOAD_HEIGHT - 15); // 創(chuàng)建進度條 progressbar = new JProgressBar(); // 顯示當前進度值信息 progressbar.setStringPainted(true); // 設置進度條邊框不顯示 progressbar.setBorderPainted(false); // 設置進度條的前景色 progressbar.setForeground(new Color(0, 210, 40)); // 設置進度條的背景色 progressbar.setBackground(new Color(188, 190, 194)); progressbar.setBounds(0, LOAD_HEIGHT - 15, LOAD_WIDTH, 15); // 添加組件 this.add(label); this.add(progressbar); // 設置布局為空 this.setLayout(null); // 設置窗口初始位置 this.setLocation((WIDTH - LOAD_WIDTH) / 2, (HEIGHT - LOAD_HEIGHT) / 2); // 設置窗口大小 this.setSize(LOAD_WIDTH, LOAD_HEIGHT); // 設置窗口顯示 this.setVisible(true); } public static void main(String[] args) { Demo t = new Demo(); new Thread(t).start(); } @Override public void run() { for (int i = 0; i 100; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } progressbar.setValue(i); } JOptionPane.showMessageDialog(this, "加載完成"); this.dispose(); } } 效果圖:
建立新的線程來處理下載。去看Thread的API有詳細說明。例如本來是:
downloading();
System.out.println("下載完成");
就改成:
class DownloadListener {//這個class自己找個地方放。
public void downloadInProgress(double percent) {
System.out.println("已下載" + percent);
}
public void downloadCompleted() {
System.out.println("已下載完成");
}
}
//從這里開始應該被改成的內(nèi)容
DownloadListener downloadListener = new DownloadListener();
new Thread() {
public void run() { //這里寫第二線程的內(nèi)容
downloading(downloadListener);//于是downloadListener被傳入了downloading函數(shù),就可以在downloading函數(shù)內(nèi)部通過呼叫downloadListener的downloadInProgress和downloadCompleted來通知第一線程下載情況。
}
}.start(); //第一線程會在這里啟動第二線程,然后不管第二線程執(zhí)行了什么是否完成,直接執(zhí)行下一句。
System.out.println("第二線程已經(jīng)啟動");
//例子里很多System.out.println是為了簡明。實際情況一般是修改一個給用戶看的狀態(tài)欄JLabel,這里下載進行中時,應該是更新一個JProgressBar。
名稱欄目:下載進度條java代碼,java實現(xiàn)下載進度條
網(wǎng)頁鏈接:http://chinadenli.net/article4/hegooe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、定制開發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站改版、網(wǎng)站策劃、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)