В одном диалоге SWT я собираюсь добавить функцию проверки входа в систему и времени.
public class LoginDialog extends Dialog {
//basic code
/**
* Create contents of the dialog.
*/
private void createContents() {
//UI code
RealtimeThread realtimeThread=new RealtimeThread(lbl_time, btn_login);
Thread thread=new Thread(realtimeThread);
thread.start();
}
//relevance methods
}
class RealtimeThread implements Runnable{
private Label lbl_time;
private Button btn_login;
public RealtimeThread(Label lbl_time, Button btn_login) {
// TODO Auto-generated constructor stub
this.lbl_time=lbl_time;
this.btn_login=btn_login;
}
@Override
public void run() {
// TODO Auto-generated method stub
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
int year, month, day, hour, min, sec;
year=Integer.parseInt(String.valueOf(new SimpleDateFormat("yyyy").format(new Date())));
month=Integer.parseInt(String.valueOf(new SimpleDateFormat("MM").format(new Date())));
day=Integer.parseInt(String.valueOf(new SimpleDateFormat("dd").format(new Date())));
hour=Integer.parseInt(String.valueOf(new SimpleDateFormat("HH").format(new Date())));
min=Integer.parseInt(String.valueOf(new SimpleDateFormat("mm").format(new Date())));
sec=Integer.parseInt(String.valueOf(new SimpleDateFormat("ss").format(new Date())));
lbl_time.setText(year +"year " + month +"month " + day + "day " + hour + ": " + min + ": " + sec );
break;
}
}
});
}
}
Я хочу проверить время в режиме реального времени.И функция входа в систему работать одновременно.Но время бежит, когда код выполняется, а возможности диалога замораживаются.В run () while (true) функция вызвала зависание.Как это решается?