01/10/2018, 11:05

Cách thêm giá trị vào JProgressBar

Mình đang viết một chương trình Copy một file và hiện tiến độ lên JProgressBar, mình đã Copy được file nhưng chưa hiện tiến độ lên được. Các bạn có thể chỉ mình cách để dùng swingworker hiện % lên JProgressBar dc không. Hàm xử lý copy mình viết riêng ở 1 class riêng.

Davit lượt viết 13:16 ngày 01/10/2018

Trong giới hạn hiểu biết mình gợi ý bạn như sau. Trong Java có 3 classes thực hiện việc này JProgressBar, ProgressMonitor, ProgressMonitorInputStream. Mình đã dùng ProgressMonitor cho copy files, cái này là dialog hiện lên khi cần, chứ không visible như JProgressBar.

Đầu tiên bạn phải tạo 1 instance cho nó với các tham số, trong đó có 2 tham số cuối là min và max (giá trị khởi tạo và cực đại). Nó là 2 giá trị đầu và cuối cho progress, đầu = 0, cuối thì chính là size của thư mục (file) mà bạn muốn copy.

Tiếp đến trong SwingWorker bạn phải định nghĩa lại 3 hàm.
doInBackground: thực hiện việc copy của bạn, mỗi khi copy xong 1 file thì public để process cập nhật tiến độ công việc.
process: cập nhật giao diện ở đây, cập nhật lên progress lượng công việc đã thực hiện đc
done: Sau khi copy xong thì làm gì.

Đó là cái mình đã làm, bạn tham khảo.

Bài liên quan
0