使用Timer为界面执行异步任务

时间:2023-01-28 00:17:20

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)来实现一秒的延迟。