Thursday, 21-11-2024, 4:23 PM
AFgame                                               

Chi sẻ kiến thức lập trình - Các demo và ứng dụng mở


Welcome Guest
Menu
Demo - HTML Hack [3]
Java - Swing [5]
Java - 2D Graphics [1]
Java - IO [3]
Java - Audio [1]
Java - Lập trình mạng [2]
Java - Trí tuệ nhân tạo [7]
Java - Lập Trình Nâng Cao [5]
Java - BT Lập trình mạng [6]
Java - Common [2]
C# [1]
Android [15]
Database [1]
Jsp/Servlet [5]
Application [1]
Tài liệu [3]
Thành viên đăng bài [0]
Nơi dành cho thành viên đăng các bài viết hoàn chỉnh hoặc các câu hỏi
Search
Statistics

Total online: 1
Guests: 1
Users: 0
Progressbar demo
08-05-2012, 8:05 PM



FULL CODE:
package Progessbar;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.swing.JFrame;
import javax.swing.JProgressBar;

/**
 *
 * @author AFgame. Homepage: http://afgame.ucoz.com
 *
 */
public class Test {

    JProgressBar progressBar;

    public Test() {
        JFrame frame = new JFrame();
        frame.setVisible(true);
//Khỏi tạo một thanh progressbar
        progressBar = new JProgressBar();
        frame.add(progressBar);
        frame.setSize(400, 50);
    }

    public void copy(File nguon, File dich) throws Exception {
        FileInputStream fis = new FileInputStream(nguon);
        FileOutputStream fos = new FileOutputStream(dich);
//Set giá trị lớn nhất cho progressbar, tức là số bytes của file nguồn. Cần lưu ý trong trường hợp này file nguồn có dung lượng nhỏ (khoảng dưới 2Gb). Trường hợp file nguồn có dung lượng lớn hơn, vì phương thức setMaximum nhận vào giá trị kiểu int, tức file nguồn quá lơn việc cast kiểu long về int sẽ bị sai và thanh progressbar của bạn sẽ có giá trị max là một số âm, điều này sẽ khiến cho quá trình chạy progressbar không đúng nữa. Bạn cần tính toán đưa giá trị legth của file nguồn về Kb, hoặc Mb để giá trị max nằm trong khoảng của int.
        progressBar.setMaximum((int) nguon.length());
        int value = 0;//Giá trị mà progessbar sẽ tăng dần lên
        int read;
        byte[] buff = new byte[1024];

        while ((read = fis.read(buff)) != -1) {
            fos.write(buff, 0, read);
//Sau mỗi lần wite mãng byte xuống thì bạn cần cập nhật lại cho thanh progressbar một giá trị mới. Khi value == maximum thì lúc đó tiến trình copy cung xong và thanh progressbar cũng đầy.
            progressBar.setValue((value += read));
        }
        fis.close();
        fos.close();
        System.out.println("Done!");
    }

    public static void main(String[] args) throws Exception {
        Test test = new Test();
        test.copy(new File("Source.mp4"), new File("Dest.mp4"));
    }
}
Category: Java - Swing | Added by: as_fancy | Tags: Demo, java, khanh, as_fancy, progressbar, afgame
Views: 2269 | Rating: 5.0/1
Total comments: 0
Giới Thiệu
Nghe Radio Zing
- Nhiều kênh
- Thêm kênh tùy thích
- Hẹn giờ tắt



Hát karaoke arirang
- Tìm kiếm nhanh chóng
- Hát thoải mái
- Nhạc beat Arirang chính hãng

Copyright AFgame © 2024
Trường ĐH Nông Lâm TP.HCM
Create a free website with uCoz