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