swingUI中,为了线程安全,使用timer类实现延迟。
btnOpen.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Timer timer=new Timer(1000,new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
value+=20;
progressBar.setValue(value);
if(value==100) {
value=0;
}
}
});
timer.setRepeats(true);
timer.start();
}
});
以上程序实现了进度条循环每隔一秒增加20%。
不能使用thread.sleep(1000)来实现一秒的延迟。