⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progressbardemo.java

📁 java2应用开发指南第一版
💻 JAVA
字号:
//ProgressBarDemo.java
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;


public class ProgressBarDemo extends JFrame
{

    protected int m_min = 0;
    protected int m_max = 100;
    protected int m_counter = 0;
    protected JProgressBar jpb;

	public ProgressBarDemo() 
	{
		super("JProgressBar Demo");
		
        jpb = new JProgressBar();
        jpb.setMinimum(m_min);
        jpb.setMaximum(m_max);
        jpb.setStringPainted(true);

        JButton start = new JButton("开始");
        //添加按钮的事件监听器
        start.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) 
          {
           	//启动一个线程
           	new UpdateThread().start();
          }
        });
        
		getContentPane().add(jpb, BorderLayout.CENTER);
        getContentPane().add(start, BorderLayout.WEST);
		
		//显示框架窗口
		setSize(300,70);
		setVisible(true);
	}

	//应用程序的入口方法
	public static void main(String args[])
	{
		 ProgressBarDemo frame=new ProgressBarDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
	//用于完成更新进度条的值和耗时任务的线程
	class UpdateThread extends Thread
	{
		Runnable runme;
		
		public UpdateThread()
		{
			runme=new Runnable(){
				public void run(){
					//更新进度条的值
                    jpb.setValue(m_counter);
				} 	
			};
		}
		public void run()
		{
			m_counter = m_min;
            while (m_counter <= m_max) {
              SwingUtilities.invokeLater(runme);
              m_counter++;
              try { 
                Thread.sleep(500); //睡眠0.5秒,模拟耗时任务的处理
              } 
              catch (Exception ex) {}
            }
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -