java进度条实例二

实现代码如下:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class JPTest1 extends JFrame implements ActionListener{
    
    JProgressBar jpb;
    JButton jb;
    JPanel jp;

    
    
    public static void main(String[] args) {
        JPTest1 jp=new JPTest1();

    }
    
    public JPTest1(){
        
        jpb=new JProgressBar();
        
        jp=new JPanel();
        jb=new JButton("完成");
        jb.setEnabled(false);
        jb.addActionListener(this);
        jp.add(jb);
        
        jpb.setStringPainted(true);
        new Progress(jpb, jb).start();
        
        
        this.add(jpb,BorderLayout.NORTH);
        this.add(jp,BorderLayout.SOUTH);
        
        
        
        //初始化主界面
        this.setTitle("进度条示例");
        this.setSize(350,120);
        this.setLocation(100,100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource()==jb){
            this.dispose();
            System.exit(1);
        }
        
    }

}

class Progress extends Thread{
    
    JProgressBar jpb;
    JButton jb;
    
    int[] values={5, 10, 15, 20, 25, 30, 35,40,45,50,55,60,65,70,75,80,85,90,95,100};
    public Progress(JProgressBar jpb,JButton jb) {
        this.jpb=jpb;
        this.jb=jb;
    }
    
    public void run(){
        for (int i=0;i<values.length;i++){
            try {
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
            }
            jpb.setValue(values[i]);
        }
        jpb.setIndeterminate(false);
        jb.setEnabled(true);
        
    }
    
}
View Code

 

posted @ 2015-11-22 23:17  kennyhip  阅读(438)  评论(0)    收藏  举报