SWT диалог двух потоков пользовательского интерфейса - PullRequest
0 голосов
/ 25 мая 2018

В одном диалоге 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) функция вызвала зависание.Как это решается?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...