`
xiaoer_1982
  • 浏览: 1815344 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java6学习笔记17——利用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());
}
}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics