要想使进度条动起来,需要用到线程。
下边是例子,只是让它动了起来,怎么控制进度,就和你的实现有关了。
import java.awt.Dimension;
public class Table extends JFrame implements Runnable {
private JProgressBar progress = new JProgressBar();
public Table() {
setResizable(false);
getContentPane().setLayout(null);
JToolBar toolBar = new JToolBar();
toolBar.add(new JLabel("state"));
toolBar.add(progress);
toolBar.setFloatable(false);
toolBar.setBounds(0, 253, 454, 15);
getContentPane().add(toolBar);
JButton btnLogin = new JButton("login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
login();
}
});
btnLogin.setBounds(12, 10, 91, 21);
getContentPane().add(btnLogin);
// 窗口属性的设置
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(460, 300);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - getWidth()) / 2,
(screenSize.height - getHeight()) / 2);
setVisible(true);
}
public static void main(String[] args) {
new Table();
}
private void login() {
new Thread(this).start();
}
public void run() {
int value = 0;
while (progress.getValue() != progress.getMaximum()) {
try {
progress.setValue(value++);
Thread.sleep(50);
} catch (Exception e) {
}
}
}
}