用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

进度条

2018-06-20 作者:krispeng举报

[java]代码库

package bar.demo;
import java.awt.EventQueue;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollBar;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;


import javax.swing.JProgressBar;
import javax.swing.JLabel;
import java.awt.Color;

public class JProcessBar  extends JFrame {

	// 得到显示器屏幕的宽高
	public static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
	public static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
	// 定义窗体的宽高
	public static int windowsWedth = 600;
	public static int windowsHeight = 600;

	private static final long serialVersionUID = 1L;

	private JProgressBar progressBar = new JProgressBar();


	private boolean state = false;
	private int count = 0;

	// 工作线程workThead
	private Thread workThead = null;
	private Runnable run = null;

	
	public static void main(String[] args) {

		JProcessBar jp = new JProcessBar();
		jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jp.setVisible(true);
	}

	/**
	 * Create the application.
	 */
	public JProcessBar() {
		
		initialize();
	}
JLabel lblNewLabel_1 = new JLabel("");
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		this.setTitle("\u52A0\u8F7D\u4E2D");
		this.setBounds((width - windowsWedth) / 2, (height - windowsHeight) / 2, 545, 186);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.getContentPane().setLayout(null);
		progressBar.setForeground(Color.BLACK);
		progressBar.setStringPainted(true);
		progressBar.setOpaque(false);
		progressBar.setBounds(73, 103, 434, 24);
		this.getContentPane().add(progressBar);
		
		JLabel lblNewLabel = new JLabel("\u8FDB\u5EA6\u52A0\u8F7D\uFF1A");
		lblNewLabel.setBounds(10, 106, 68, 15);
		this.getContentPane().add(lblNewLabel);
		lblNewLabel_1.setOpaque(true);
		lblNewLabel_1.setBounds(73, 80, 235, 24);
		getContentPane().add(lblNewLabel_1);
		
		if (workThead == null) {
			state = true;
			workThead = new WorkThead();
			workThead.start();
		}
	}
	class WorkThead extends Thread {

		public void run() {

			while (count < 100) {

				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

				if (state) {
					count++;
					SwingUtilities.invokeLater(new Runnable() {

						@Override
						public void run() {
							// TODO Auto-generated method stub
							// 更新操作通过事件派发线程完成(一般实现Runnable()接口)
							progressBar.setValue(count);
							if(count==5){
							lblNewLabel_1.setText("loading api-ms-win-core-xstate-l1-1-0.dll");
							}else if(count==10){
								lblNewLabel_1.setText("loading MaxxAudioAPO5064.dll");
							}else if(count==20){
								lblNewLabel_1.setText("loading MetroIntelGenericUIFramework.dll");
							}else if(count==30){
								lblNewLabel_1.setText("loading microsoft-windows-kernel-power-events.dll");
							}else if(count==40){
								lblNewLabel_1.setText("miguiresource.dll");
							}else if(count==80){
								lblNewLabel_1.setText("loading mfvdsp.dll");
							}else if(count==90){
								lblNewLabel_1.setText("loading miguiresource.dll");
							}else if(count==100){
								lblNewLabel_1.setText("loading end");
								Thread.currentThread().sleep(500);
							
							}
						}
					});
				}
			}
		}

	}
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。