Создает ли следующий код имплицитный поток пользовательского интерфейса SWT? - PullRequest
0 голосов
/ 17 ноября 2011

У меня небольшой запрос. Я только начал с программирования SWT и узнал, что все обновления компонента пользовательского интерфейса должны быть сделаны из потока пользовательского интерфейса, и поток пользовательского интерфейса - тот, в котором был создан объект отображения.Итак, в следующем коде, даже если я явно не создаю поток, создается ли поток в фоновом режиме?

package com.zetcode;

import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 * ZetCode Java SWT tutorial
 *
 * In this program, we show a window in
 * the center of the screen
 *
 * @author jan bodnar
 * website zetcode.com
 * last modified June 2009
 */

public class SWTApp {


    public SWTApp(Display display) {

        Shell shell = new Shell(display);
        shell.setText("Center");
        shell.setSize(250, 200);

        center(shell);

        shell.open();

        while (!shell.isDisposed()) {
          if (!display.readAndDispatch()) {
            display.sleep();
          }
        }
    }


    public void center(Shell shell) {

        Rectangle bds = shell.getDisplay().getBounds();

        Point p = shell.getSize();

        int nLeft = (bds.width - p.x) / 2;
        int nTop = (bds.height - p.y) / 2;

        shell.setBounds(nLeft, nTop, p.x, p.y);
    }


    public static void main(String[] args) {
        Display display = new Display();
        new SWTApp(display);
        display.dispose();
    }
}

Источник: http://zetcode.com/tutorials/javaswttutorial/introduction/

Спасибо, Паван.

1 Ответ

1 голос
/ 17 ноября 2011

Новый поток не создается, но ваш поток становится потоком пользовательского интерфейса.

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