利用JProcessBar类可以实现一个进度条,它本身不过是一个矩形控件,通过填充它的部分或全部来指示一个任务的执行情况,可以放置到一个新的线程中运行。
示例如下:
- import java.awt.Color;
- import java.awt.FlowLayout;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JProgressBar;
- import javax.swing.border.EmptyBorder;
- public class JProcessBarDemo extends JFrame{
- private static final long serialVersionUID = 1L;
- private JProgressBar processBar;
- public JProcessBarDemo(){
- setTitle("进度条使用"); //设置窗体标题
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体退出的操作
- setBounds(100, 100, 250, 100);// 设置窗体的位置和大小
- JPanel contentPane = new JPanel(); // 创建内容面板
- contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置内容面板边框
- setContentPane(contentPane);// 应用(使用)内容面板
- contentPane.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));// 设置为流式布局
- processBar = new JProgressBar();// 创建进度条
- processBar.setStringPainted(true);// 设置进度条上的字符串显示,false则不能显示
- processBar.setBackground(Color.GREEN);
- // 创建线程显示进度
- new Thread(){
- public void run(){
- for (int i = 0; i < 101; i++) {
- try {
- Thread.sleep(100); // 让当前线程休眠0.1ms
- } catch (InterruptedException e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- processBar.setValue(i); // 设置进度条数值
- }
- processBar.setString("升级完成");// 设置提示信息
- }
- }.start(); // 启动进度条线程
- contentPane.add(processBar);// 向面板添加进度控件
- }
- public static void main(String[] args){
- JProcessBarDemo JPBD = new JProcessBarDemo();
- JPBD.setVisible(true);
- }
- }
运行结果如下: