[align=center]JProgressBar progressBar;
progressBar = new JProgressBar();
progressBar.setStringPainted(true);如在MAIN里有调用了A的CALSS里的函数C(),在C()里如何把JProgressBar 的百分比改变?
import XXX.XXX.a;
a q = new a();
a.C()的函数是完成计算的过程,而我想用JProgressBar 来显示C()完成的进度!!我应该怎办??[/align]
progressBar = new JProgressBar();
progressBar.setStringPainted(true);如在MAIN里有调用了A的CALSS里的函数C(),在C()里如何把JProgressBar 的百分比改变?
import XXX.XXX.a;
a q = new a();
a.C()的函数是完成计算的过程,而我想用JProgressBar 来显示C()完成的进度!!我应该怎办??[/align]
楼主【jackwin】截止到2008-07-11 16:46:46的历史汇总数据(不包括此帖):
发帖的总数量:8 发帖的总分数:325 每贴平均分数:40
回帖的总数量:11 得分贴总数量:1 回帖的得分率:9%
结贴的总数量:8 结贴的总分数:325
无满意结贴数:1 无满意结贴分:30
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:12.50 % 无满意结分率:9.23 %
敬礼!
至于怎么调你自己看着办,因为你的代码逻辑只有你最清楚
在 a.C 里调用JProgressBar的方法setValue动态修改
的进度信息,在实例化A的一个对象a后,给a增加一个监听器,同时包含进度条的类
实现了a的监听器的监听方法,在监听方法里根据进度信息更新进度条显示呵呵,简单说就是这样。就是这个板块,很久以前有篇标题“对Swing线程的再思索”的文章说的比较清楚
不知道还能不能查到
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class LoginProgressFrame extends JDialog implements Runnable {
private JProgressBar bar;
private Container me;
private JLabel lblBackground;
private JLayeredPane layPane;
private JLabel lblTitle;
private Thread thread;
private String userName;
Random random = new Random();
public LoginProgressFrame(String userName) {
init();
this.userName = userName;
this.setSize(400,300);
this.setUndecorated(true);//没有标题栏
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setVisible(true);
}
public void init() {
lblBackground = new JLabel(new ImageIcon("image/login.jpg"));
me = (JPanel) getContentPane();
me.setLayout(new BorderLayout());
me.add(lblBackground);
setSize(new Dimension(400,300));
bar = new JProgressBar();
bar.setForeground(Color.blue);
bar.setBounds(50,200,300,40);
bar.setStringPainted(true);//设置进度条字
lblTitle = new JLabel("欢迎使用本系统");
lblTitle.setBounds(50,50,280,30);
layPane = this.getLayeredPane();
layPane.add(bar);
layPane.add(lblTitle);
thread = new Thread(this);
thread.start();
}
public void run() {
while(bar.getValue() < bar.getMaximum()) {
bar.setValue(bar.getValue() + random.nextInt(10));
try {
thread.sleep(200);
}catch(InterruptedException ie) {
ie.printStackTrace();
}
}
this.dispose();
new MainFrame(userName);
}
}
用线程加随机数来控制