图片下载完了,呵进度条缺没显示完成 private void Update(final MyThread trd, final int i) {
Thread t = new Thread(id) {
public void run() {
while (true) {
if (trd.getFlag() == 2) { //==2 下载完成
table.setValueAt("go", i, 6);
break;
} if (trd.getLen() > 0) { //trd.getLen() 图片大小字节数
table.setValueAt(getLength(trd.getLen()), i, 3);
table.setValueAt("start", i, 6);
}
if (trd.getRead() > 0) { //trd.getRead() 当前读取字节数
int k = (int) trd.getRead() / 1024;
int p = k * 100 / (int) (trd.getLen() / 1024);
table.setValueAt(String.valueOf(p), i, 4);
} try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
}
Thread t = new Thread(id) {
public void run() {
while (true) {
if (trd.getFlag() == 2) { //==2 下载完成
table.setValueAt("go", i, 6);
break;
} if (trd.getLen() > 0) { //trd.getLen() 图片大小字节数
table.setValueAt(getLength(trd.getLen()), i, 3);
table.setValueAt("start", i, 6);
}
if (trd.getRead() > 0) { //trd.getRead() 当前读取字节数
int k = (int) trd.getRead() / 1024;
int p = k * 100 / (int) (trd.getLen() / 1024);
table.setValueAt(String.valueOf(p), i, 4);
} try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.JProgressBar;
import javax.swing.*;
public class progressbardemo extends JFrame
{
protected int m_min=0;
protected int m_max=100;
protected int m_counter=0;
protected JProgressBar jpb;
public progressbardemo()
{
super("进度条的小程序");
jpb=new JProgressBar();
jpb.setMinimum(m_min);
jpb.setMaximum(m_max);
jpb.setStringPainted(true);
JButton start=new JButton("开始");
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new updatethread().start();
}
});
getContentPane().add(jpb,BorderLayout.CENTER);
getContentPane().add(start,BorderLayout.WEST);
setSize(300,70);
setVisible(true);
}
public static void main (String[] args) {
progressbardemo frm=new progressbardemo();
frm.addWindowListener(new WindowAdapter(){
public void windowclosing(WindowEvent e){
System.exit(0);
}
});
}
class updatethread extends Thread{
Runnable runme;
public updatethread(){
runme=new Runnable(){
public void run(){
jpb.setValue(m_counter);
}
};
}
public void run(){
m_counter=m_min;
while(m_counter<=m_max){
SwingUtilities.invokeLater(runme);
m_counter=m_counter+1;
try {
Thread.sleep(50);
}
catch(Exception ex){}
}
}
}
}