SWT – кросс платформенная библиотека компонент для построения графического интерфейса пользователя (Graphical user interface (GUI)).
Первым java фреймуорком для построения графического интерфейса пользователя была созданная корпорацией Sun Microsystems библиотека AWT (Abstract Windowing Toolkit).
Данный фреймуорк использовал визуальные компоненты операционной системы. А так как требовалось обеспечить кроссплатформенность, то возникла проблема различия состава визуальных компонент в различных операционных системах (ОС). По этой причине часть полезных компонент была исключена из состава AWT. В терминологии большинства ОС такие компоненты называют Widget ("гаджет", "штуковина" - небольшой поли-, пара-, гипер- и метафункциональный предмет. Перочинный ножик с нужными и ненужными, но потенциально полезными функциями, например).
Для решения данной проблемы корпорацией Sun была начата разработка нового фреймуорка. В результате была создана очень мощная, включающая большое количество компонент библиотека Swing. В отличие от AWT компоненты Swing не зависят от widget'ов операционной системы. За прорисовку и поведение GUI элементов полностью отвечает библиотека Swing. Это позволило создать GUI компонетны, которые одинаково выглядят и функционируют на различных операционных системах. Для каждой операционной системы были разработаны настройки внешнего вида и поведения (LookAndFeel), которые максимально эмулировали компоненты конкретной операционной системы. Использование lookAndFeel позволило создавать красочные и привлекательные интерфейсы java приложений.
Популярность языка java привлекла разработчиков корпорации IBM. Использование java позволяло решить проблему создания множества версий одних и тех же продуктов для различных операционных систем. Ранее, в процессе разработки визуального интерфейса для VisualAge/SmallTalk, в сотрудничестве корпорации IBM и копании Object Technology International, Inc. (OTI). Была разработана библиотека для построения визуального интерфейса CommonWidgets. (Позднее, компания ATI стала одним из подразделений корпорации IBM).
Имея большой штат разработчиков VisualAge/SmallTalk, корпорацией IBM был инициирован проект по разработке универсальной платформы для создания java приложений Eclipse (впоследствии был создан консорциум Eclipse и данный проект, стоимостью в 40 миллионов $, был вместе с исходными кодами передан в свободное пользование (opensource)). Причем лицензия на Eclipse позволяет создавать "закрытые" коммерческие продукты. В процессе разработки Eclipse при сотрудничестве IBM и OTI был разработан новый графический фреймуорк, который позволил использовать ранее накопленный опыт без переучивания персонала и упрощения портирования ранее созданных продуктов на новую платформу. Этот фреймуорк получил название Standard Widget Toolkit (SWT). В SWT, как и AWT максимально используются компоненты операционной системы. Но в отличие от AWT, отсутствующие в конкретной операционной системе компоненты не исключены, а эмулируются. В результате, была создана быстрая высокоэффективная кросс платформенная библиотека компонент, которые выглядят и ведут себя как нативные компоненты операционной системы. Что в свою очередь упрощает процесс обучения пользователей java приложений, так как SWT программы не отличаются от обычных приложений.
Библиотеку SWT можно использовать не только для разработки приложений на платформе Eclipse, но также и для разработки любых других приложений. При этом можно использовать любую среду разработки java приложений Integrated Development Enviroment (IDE), например Oracle Java Developer или Borland Java Builder. Для этого достаточно включить необходимые библиотеки SWT в состав java приложения. Фреймуорк SWT поддерживает большинство популярных операционных систем. Так же существует возможность компиляции SWT java приложений в нативный бинарный код, что повышает производительность созданных приложений и не требует установки java машины - Java Runtime Enviroment (JRE). Такие приложения ничем не отличаются от нативных приложений конкретной операционной системы, а использование современных IDE позволяет быстро создавать качественные кросс платформенные продукты для различных операционных систем.