import javax.swing.JFrame;
import javax.swing.JProgressBar;
import java.awt.Container;
import java.awt.Insets;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ProgressDemo extends JFrame {
public static void main(String arg[]) {
new ProgressDemo();
}
public ProgressDemo() {
int height;
int width;
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{ System.exit(0); } } );
setLocation(200,150);
Container pane = getContentPane();
pane.setLayout(null);
Insets insets = pane.getInsets();
JProgressBar bar = new JProgressBar(0,100);
bar.setValue(0);
bar.setStringPainted(true);
Dimension dim = bar.getPreferredSize();
int x = insets.left + 20;
int y = insets.top + 20;
dim.width += 100;
bar.setBounds(x,y,dim.width,dim.height);
pane.add(bar);
width = x + dim.width + 20 + insets.left;
height = y + dim.height + 40 + insets.bottom;
ProgressDemoTask task = new ProgressDemoTask(bar);
task.start();
setSize(width,height);
setVisible(true);
}
}
class ProgressDemoTask implements Runnable {
private boolean running;
private Thread looper;
private JProgressBar bar;
private int value;
ProgressDemoTask(JProgressBar bar) {
this.bar = bar;
running = false;
}
public void start() {
if(!running) {
value = 0;
bar.setValue(value);
running = true;
looper = new Thread(this);
looper.start();
}
}
public void run() {
try {
while(running) {
Thread.sleep(200);
bar.setValue(++value);
if(value >= 100)
running = false;
}
} catch(Exception e) {
System.out.println(e.getStackTrace());
}
}
}
Java6学习笔记17——利用Swing创建知道执行进度的任务的进度条
最新推荐文章于 2021-09-18 00:33:46 发布
本文介绍了一个使用Java Swing实现的简单进度条演示程序。该程序通过JProgressBar组件展示了一个从0到100逐渐填充的进度条,并通过独立的线程控制进度更新。此示例适用于初学者了解Swing的基本用法及线程的应用。
9968

被折叠的 条评论
为什么被折叠?



