关于jProgressBar的一个奇怪问题
我想使用jProgressBar表示程序的执行进度,首先写了一个类,代码如下:
public class ProgressThread extends Thread {
JProgressBar bar=null;
public ProgressThread() {
bar = Illustrator_applet.jProgressBar1;
}
public void run(){
try{
SwingUtilities.invokeLater(new Runnable() {
public void run() {
bar.setStringPainted(true);
bar.setValue(bar.getValue() + 20);
bar.paintImmediately(0,0,bar.getWidth(),bar.getHeight());
try{
// Thread.sleep(100l);
System.out.println( "sleep 100... ");
}catch(Exception ee){ee.printStackTrace();}
}
});
}catch(Exception ee){ee.printStackTrace();}
}
}
然后在代码中调用了: (new ProgressThread()).start();
结果是,每次调用时进度条并不移动,而是在程序执行完毕后直接跳到了100%.
我在网上查了一些资料,比如http://joyjoii.spaces.live.com/blog/cns!a470149c6dfba182!987.entry
但是调了2天都解决不了,期待高手帮助,先谢谢了.
------解决方案--------------------看不懂楼主的做法,JProgressBar 的进度不是都要自己要控件吗?
比如说,首先
progressBar.setMaximum(0);
//progressBar.setIndeterminate(true);//这个是默认的设置。
然后,在估计程序运行到10%的时候,就要JProgressBar.setValue(10)
在估计程序运行到20%的时候,就要JProgressBar.setValue(10)
...
等等。
我也是初学者,不知道是不是这样用的。