📄 progressbartest.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 + -