В этой архитектуре Display-объект представляет низлежащую операционную систему, обеспечивая связь между системой SWT и операционной системой.
Перед созданием какого-либо экземпляра SWT-компонента необходимо создать Display-объект, при этом для каждого SWT-приложения может существовать только один Display-объект.
При создании Display-объекта создается специальный поток, или правильнее сказать Display-объект создается в специальном потоке, называемом UI-потоком (user-interface thread), который отвечает за выполнения цикла событий и вызов большинства методов программного интерфейса SWT API.
Класс Display предоставляет программный интерфейс для регистрации и удаления слушателей событий низлежащей операционной системы, взаимодействия с другими потоками, доступа к системным ресурсам (цвет, курсор, шрифт и др.) и так далее.
В конструкторе класса SWT-приложения вызывается суперконструктор класса Shell.
Так как система SWT представляет собой Java-оболочку библиотеки GUI-компонентов низлежащей операционной системы, а компоненты операционной системы имеют свои характеристики (styles), система SWT также определяет для своих компонентов характеристики или стили.
SWT-стили компонентов хранятся в специальном классе SWT.
Подходящие для Shell-окна стили – это константы SHELL_TRIM (окно с заголовком и кнопками закрытия и сворачивания, разворачивания) и DIALOG_TRIM (окно с заголовком и кнопкой закрытия), а также константы, определяющие модальность окна APPLICATION_MODAL, MODELESS, PRIMARY_MODAL и SYSTEM_MODAL.
После вызова суперконструктора, в конструкторе класса SWT-приложения вызывается метод createContents, предназначенный для определения свойств Shell-окна.
Защищенный метод createContents главного класса SWT-приложения отвечает за определение свойств окна SWT-приложения.
В методе createContents устанавливается текст заголовка окна и размеры окна.
Статический метод main главного класса SWT-приложения является точкой входа в приложение.
В методе main в первую очередь создается Display-объект, используя статический метод getDefault, затем с помощью конструктора создается экземпляр главного класса приложения, помним, что при этом в методе createContents определяются свойства окна приложения.
Далее окно открывается методом open класса Shell и производится компоновка содержимого окна методом layout класса Composite (суперкласса класса Shell).
После этого в методе main организуется цикл, который прекращается при закрытии окна (!shell.isDisposed ()) и в котором UI-поток засыпает, используя метод sleep класса Display, до тех пор, пока в очереди событий не появится какое-либо событие (!display.readAndDispatch ()).