package progressbar;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
public class ProgressBarThread implements Runnable{
private ArrayList<Integer> proList = new ArrayList<Integer>();
private long progress;//当前进度
private long totalSize;//总大小
private boolean run = true;
private JProgressBar jpb=new JProgressBar();
JFrame frm=new JFrame();
public ProgressBarThread(int totalSize){
this.totalSize = totalSize;
System.out.println("+++++++++++++++++++++++"+totalSize+"++++++++++++++++++++++++++++++");
//TODO 创建进度条
Container contentPane=frm.getContentPane();
jpb.setOrientation(JProgressBar.HORIZONTAL);
jpb.setMaximum(100);jpb.setMinimum(0);jpb.setValue(0);
jpb.setStringPainted(true);
jpb.setPreferredSize(new Dimension(400,50));
contentPane.add(jpb,BorderLayout.CENTER);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
/**
* @param progress 进度
*/
public void updateProgress(int progress){
this.progress=progress;
synchronized (this.proList) {
if(this.run){
this.proList.add(progress);
this.proList.notify();
}
}
}
public void finish(){
this.run = false;
//关闭进度条
}
@Override
public void run() {
synchronized (this.proList) {
try {
while (this.run) {
if(this.proList.size()==0){
this.proList.wait();
}
synchronized (proList) {
long persent=(this.progress*100)/this.totalSize;
this.proList.remove(0);
//TODO 更新进度条
jpb.setValue((int) persent);
System.err.println("当前进度:"+persent+"%");
}
}
System.err.println("下载完成");
frm.dispose();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package progressbar;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
public class testMain {
//2016-12-22下午3:31:17,黄娟
public static void main(String[] args) {
//********进度条程序********//
// try {
// File file = new File("D:\\书籍\\[Photoshop.CS6完全自学教程].杰诚文化.扫描版.pdf");
// FileInputStream fis = new FileInputStream(file);
// FileOutputStream fos = new FileOutputStream("文件保存路径");
// ProgressBarThread pbt = new ProgressBarThread((int)file.length());//创建进度条
// new Thread(pbt).start();//开启线程,刷新进度条
// byte[] buf = new byte[1024];
// int size = 0;
// int count =0;
// while((size = fis.read(buf))>-1){//循环读取
// count+=size;
// fos.write(buf, 0, size);
// pbt.updateProgress(count);//写完一次,更新进度条
// }
// //System.out.println("=========================finish");
// pbt.finish();//文件读取完成,关闭进度条
// fos.flush();
// fos.close();
// fis.close();
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
//********进度条程序********//
Date date=new Date(2017, 1, 11);
System.out.println(date.hashCode());
String s1 = "Programming";
String s2 = new String("Programming");
String s3 = "Program" + "ming";
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s1 == s1.intern());
System.out.println(s1.intern());
}
}