Java6学习笔记17——利用Swing创建知道执行进度的任务的进度条

本文介绍了一个使用Java Swing实现的简单进度条演示程序。该程序通过JProgressBar组件展示了一个从0到100逐渐填充的进度条,并通过独立的线程控制进度更新。此示例适用于初学者了解Swing的基本用法及线程的应用。

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());
}
}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值