java进度条问题

lzbl928 2010-06-27 01:27:30
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(),这个方法将处理复杂的后台程序,用时比较长,在这个方法运行的时候我想用进度条在界面显示这个程序的进度,请问进度条代码怎么用在这个方法中!谢谢!
...全文
303 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
thegodofwar 2010-06-28
  • 打赏
  • 举报
回复
学习ing
fantasy471503202 2010-06-27
  • 打赏
  • 举报
回复
认真研究了一下楼主的问题,也查了查资料。如果楼主想显示确定的进度,可以在getInformation()方法中需要加上进度点的地方加上count值的设置,,然后可以采用以下方式来做
void getInformation(){
....
count = 1
....
count = 5
....
..
count = 100;
end;

}。当然此方法比较笨拙。
如果楼主的doSomenthing()方法是一个读入数据的方法,想要显示进度条,可以采用ProgressMonitorInputStream这个类来做,很简单就能实现。

最后真要不行,只能采用JProcessBar的显示不确定进度条的方法了,别的应该也没什么好方法了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧