import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;public class TestJprogressBar extends Thread implements ActionListener { private JProgressBar jpb = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); public TestJprogressBar() {  JFrame jf = new JFrame("进度条/线程");
  jf.setLayout(new FlowLayout());  JButton jb = new JButton("点击开始计时");
  jb.addActionListener(this);
  jpb.setBorderPainted(true);
  jpb.setBackground(Color.PINK);
  jpb.setStringPainted(true);
  
  jf.add(jpb);
  jf.add(jb);
  jf.setSize(320, 160);
  jf.setLocation(100, 100);
  jf.setVisible(true);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 } public static void main(String[] args) {
  new TestJprogressBar(); } public void actionPerformed(ActionEvent e) {
  this.start();
 } public void run() {
  for (int i = 0; i <= 100; i++) {
   jpb.setString("正在安装" + i + "%");
   jpb.setValue(i);
   try {
    Thread.sleep(100);
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }}
这是进度条代码,那么我有一个方法getInformation(),这个方法将处理复杂的后台程序,用时比较长,在这个方法运行的时候我想用进度条在界面显示这个程序的进度,请问进度条代码怎么用在这个方法中!谢谢!

解决方案 »

  1.   

    看这里http://blog.csdn.net/bzwm/archive/2009/02/16/3895381.aspx
      

  2.   

      认真研究了一下楼主的问题,也查了查资料。如果楼主想显示确定的进度,可以在getInformation()方法中需要加上进度点的地方加上count值的设置,,然后可以采用以下方式来做
    void getInformation(){
         ....
         count = 1
         ....
         count = 5
         ....
         ..
         count = 100;
         end;}。当然此方法比较笨拙。
      如果楼主的doSomenthing()方法是一个读入数据的方法,想要显示进度条,可以采用ProgressMonitorInputStream这个类来做,很简单就能实现。  最后真要不行,只能采用JProcessBar的显示不确定进度条的方法了,别的应该也没什么好方法了。