日期:2014-05-20  浏览次数:20719 次

测试JProgressBar的问题,为什么用一个JButton来控制就会出错?
import   javax.swing.*;
import   java.awt.*;
import   java.awt.event.*;
public   class   Progress   extends   JFrame   {

JProgressBar   current;
JButton   find   =   new   JButton( "开始 ");
int   num   =   0;
public   Progress(){
super( "progress ");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel   panel   =   new   JPanel();
panel.setLayout(new   FlowLayout());
current   =   new   JProgressBar(0,100);
current.setValue(0);
current.setStringPainted(true);
panel.add(current);
panel.add(find);
getContentPane().add(panel);

find.addMouseListener(new   MouseAdapter(){

public   void   mousePressed(MouseEvent   e){
interate();
}
});
}
public   void   interate(){
while(num <=100){
current.setValue(num);
try   {
Thread.sleep(100);
}   catch   (InterruptedException   e)   {
//   TODO   Auto-generated   catch   block
e.printStackTrace();
}
num++;
}
}

public   static   void   main(String[]   args)   {
Progress   p   =   new   Progress();
p.pack();
p.setVisible(true);
//p.interate();

}

}


------解决方案--------------------
/********************第21行起换成我这样就行了
find.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){
new Thread(new Runnable(){
public void run(){
interate();
}
}).start();
}
});