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

📄 progressbartest.java

📁 《Java程序设计与应用》-张仕斌-源程序 《Java程序设计与应用》-张仕斌-源程序
💻 JAVA
字号:
//ProgressBarTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ProgressBarTest extends JFrame implements Runnable {
	
	private JProgressBar pb = null;   //进度条
	private Thread th = null;         //使用多线程,自动刷新进度条
	private JButton btnStart = null;  //开始按钮
	
	public ProgressBarTest() {
		super("JProgressBar Test");
		
		pb = new JProgressBar();    //使用默认值创建进度条
		pb.setStringPainted(true);  //设置显示文本信息
		
		btnStart = new JButton("开始");		
		
		Container cp = this.getContentPane();
		cp.add(pb , BorderLayout.NORTH);  //进度条在北面
		Panel p = new Panel();
		p.add(btnStart);
		cp.add(p , BorderLayout.SOUTH);   //按钮在南边
		/*为按钮添加动作监听对象,使用匿名类的方式*/
		btnStart.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				start();     //重新开始进度条
			}
		});
		/*为进度条添加ChangeListener对象,使用匿名类的方式*/
		pb.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {  //什么都不做
			}
		});
	}
	
	public void run() {  //线程执行
		int pos = 0;
		int max = pb.getMaximum();
		while ( th != null && pos < max) {  //线程启动,未到100%
			try {
				pb.setValue(++pos);   //每次增加1%
				Thread.sleep(100);    //休眠100毫秒
			} catch (InterruptedException e) {
			}
		}
		th = null;  //释放当前线程对象
	}
	
	public void start() {  //启动线程
		th = new Thread(this);
		th.start();
	}
	
	public static void main(String[]args) {
		ProgressBarTest pbt = new ProgressBarTest();
		pbt.setSize(400,100);
		pbt.setDefaultCloseOperation(EXIT_ON_CLOSE);
		pbt.setVisible(true);
	}
}

⌨️ 快捷键说明

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