java从入门到精髓 -Swing高级JProgressBarTest进度条

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.filechooser.*;
import javax.swing.*;
public class JProgressBarTest  extends JFrame{

    
public JProgressBarTest() {
        
super();
        setTitle(
"表格");
        setBounds(
100,100,350,150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
final JButton button = new JButton("           ");
        
final JButton button2 = new JButton("完成");
        button2.setEnabled(
false); //初始化时不可用
        button.setBounds(100,100,100,100);
        
        
final JProgressBar progressBar = new JProgressBar();
        progressBar.setStringPainted(
true);  //显示提示信息
        progressBar.setIndeterminate(false);   //确定进度的进度条
        
//progressBar.setIndeterminate(true);   //不确定进度的进度条
        
//progressBar.setString("升级中...");    //确定信息时加上此条,则提示升级中,没有%比,如是不加上这个,则会提示%
        setLayout(new FlowLayout(2,10,10));
        getContentPane().add(button);  
//布局处理
        getContentPane().add(button2);  //布局处理
        getContentPane().add(progressBar);  //布局处理
        new Progress(progressBar,button2).start();   //自定义类progress
    }

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        JProgressBarTest jProgressBarTest = new JProgressBarTest();
        jProgressBarTest.setVisible(
true);
    }

}
class Progress extends Thread{//自定义类progress
    private final int []progressValue = {6,18,27,39,51,66,81,100};
    
private JProgressBar progressBar;
    
private JButton button;
    
public Progress(JProgressBar progressBar,JButton button)
    {
        
this.progressBar = progressBar;
        
this.button =button;
    }
    
public void run()
    {
        
for(int i=0;i<progressValue.length;i++)
        {
            
try
            {
                Thread.sleep(
1000);
            }
catch(Exception e)
            {
                e.printStackTrace();
            }
            progressBar.setValue(progressValue[i]);  
//进度值
        }
        progressBar.setIndeterminate(
false);  //采用确定的进度条
        
//progressBar.setIndeterminate(true);   //不确定进度的进度条
        progressBar.setString("升级完成.");  //提示信息
        button.setEnabled(true);  //按钮可用
    }
}

 

posted @ 2010-09-22 21:37  叮当小马  阅读(8017)  评论(0编辑  收藏  举报