当前位置:编程学习 > JAVA >>

JProgressBar进度条组件式以可视化形式显示某些任务条进度的组件。 没有START按钮效果

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
class BarThrread extends Thread{
private int DELAY;
private JProgressBar progressBar;
private JButton button;
private boolean flag=true;
public void BarThread(JProgressBar bar,JButton button){
progressBar=bar;
this.button=button;//初始化
}
public void run(){//线程体
button.setEnabled(false);

int maximum=progressBar.getMaximum();
while(flag){
try {
Thread.sleep(DELAY);//休眠100秒
}catch(InterruptedException ignoredException) {
}

progressBar.setValue(progressBar.getValue()+1);
if(progressBar.getValue()>=maximum){//如果拿到值>=最大值
flag=false;
}
}
button.setEnabled(true);
}
}
public class JProgressBarTest{
public static void main(String[] args){
final JProgressBar aJProgressBar=new JProgressBar(0,100);
aJProgressBar.setStringPainted(true);//呈现进度字符串
final JButton aJButton=new JButton("start");//按钮
aJButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(aJProgressBar.getValue()>=aJProgressBar.getMaximum()){
aJProgressBar.setValue(0);
}
///大概这里错了吧
Thread stepper=new Thread(aJProgressBar,aJButton);
stepper.start();
}
});

JFrame frame=new JFrame("progress Bar");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.add(aJProgressBar,BorderLayout.NORTH);
frame.add(aJButton,BorderLayout.SOUTH);
frame.setSize(300,150);
frame.setVisible(true);
}

}
没效果啊
thread progress bar JAVA  --------------------编程问答-------------------- 有以下几个小错误:
类名写错了BarThrread应该为BarThread;
传两个参数的那个,你是想写构造方法吧?去掉void修饰符;
然后就是把new Thread改为new BarThread; --------------------编程问答-------------------- 按照楼上的改完以后,你的Thread.sleep(DELAY);// 休眠100秒没有赋值,这块好像还得在调整下,不然点一下button,一下就到后了没有看到效果
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,