В этой статье вы прочитаете про графическую библиотеку для языка программирования Java Standard Widget Toolkit.
Также посмотрите статью «Виртуальная машина java, JVM и байт-код», тоже очень полезная статья, особенно для новичков в Java.
Обзор Standard Widget Toolkit:
Standard Widget Toolkit ( SWT ) — это библиотека графических пользовательских элементов для платформы Java. Первоначально разработанная IBM, библиотека теперь управляется Eclipse Foundation вместе с проектом Eclipse IDE. Это альтернатива AWT и Swing — инструменты с графическим интерфейсом от Sun Microsystems как часть платформы Java, Standard Edition.
Библиотека SWT написана на Java. Он использует собственные библиотеки операционной системы через собственный интерфейс Java (JNI ) для визуализации элементов графического интерфейса, аналогично программам, написанным с использованием собственного API операционной системы.
Программы, использующие SWT, переносимы, но реализация «набора инструментов», хотя и написана на Java, уникальна для каждой платформы.
Библиотека находится под лицензией Eclipse Public License.
AWT ( Abstract Window Toolkit ) была первой библиотекой графического интерфейса пользователя Java, представленной в JDK 1.0, как один из компонентов платформы Java Sun Microsystems.
Первоначальный AWT был простой оболочкой Java для виджетов, предоставляемых системой . таких как меню, окна и кнопки.
Swing — это библиотека инструментов графического интерфейса нового поколения, представленная Sun в J2SE 1.2 . Библиотека Swing была разработана для предоставления более богатого набора компонентов, чем AWT.
Элементы графического интерфейса Swing — это 100% Java без какого-либо собственного кода: вместо того, чтобы обертывать собственные компоненты графического интерфейса, Swing сам рисует их при использовании Java2D. вызова низкоуровневого интерфейса рисования операционной системы.
Корни SWT восходят к работе, проделанной Object Technology International, затем OTI, когда в 1990 году она создала кроссплатформенный, переносимый, нативный интерфейс виджетов для Smalltalk (ранее OTI Smalltalk, который в 1993 году стал IBM Smalltalk). Уровень CW ( Common Widget ) IBM Smalltalk обеспечивал быстрый, собственный доступ ко многим наборам элементов управления на различных платформах, но предлагал общий API без так называемой проблемы «наименьшего общего знаменателя», с которой сталкиваются другие портативные наборы инструментов GUI.
В то время IBM разрабатывала среду разработки VisualAge написанную на Smaltalk.. Они решили передать свой код сообществу разработчиков ПО с открытым исходным кодом, что привело к разработке Eclipse, который должен был стать новым конкурентом для других сред разработки, таких как Microsoft Visual Studio . Eclipse развился на основе Java, и разработчики IBM, нуждающиеся в инструментарии, который обладал бы «естественным внешним видом » и «собственной производительностью», создали SWT в качестве замены Swing
SWT — это оболочка вокруг собственных объектов — объектов GTK +, объектов Win32 и т.д. По этой причине виджеты SWT часто называют «тяжеловесными» (тяжелые собственные объекты скрыты под легкой оболочкой). В тех случаях, когда собственные библиотеки графического интерфейса не обеспечивают требуемую функциональность для SWT, SWT сам реализует эту функциональность, подобно тому, как это делает Swing. По сути, SWT — это компромисс между внешним видом и низкой производительностью AWT и высоким уровнем простоты использования Swing.
Согласно Eclipse Foundation, «SWT и Swing — это разные инструменты, созданные для разных целей. Цель SWT — предоставить API для доступа к нативной графике на широком спектре платформ. Основными целями дизайна являются: высокая скорость, естественный вид и глубокая интеграция с платформой. Swing — противоположность. разработан, чтобы обеспечить возможность гибкой настройки внешнего вида, одинакового на всех платформах «.
SWT относительно проще, чем Swing, без «ненужных» (для среднего разработчика) дополнительных функций. Однако это приводит к аргументу, что SWT не обладает некоторыми функциональными возможностями по сравнению со Swing.
Хотя SWT не реализует популярную архитектуру Model-View-Controller, используемую в Swing и многих других инструментах GUI, библиотека JFace , которая разрабатывается в рамках того же проекта Eclipse, представляет собой реализацию модели View-Controller с высокой абстракцией как расширение SWT. Разработчики могут выбрать использование JFace для более гибких и абстрактных моделей данных для сложных элементов SWT, таких как деревья, таблицы и списки, или они могут обращаться к этим элементам напрямую по мере необходимости.
SWT был разработан, чтобы быть очень мощным; быстрее, легче и лучше использует системные ресурсы, чем Swing.
Было предпринято несколько попыток сравнить SWT и Swing с использованием различных тестов производительности (тестов), которые подтвердили, что SWT работает быстрее, хотя эти тесты не были достаточно всеобъемлющими, чтобы прийти к решающему заключению.
Однако другие «реальные» тесты не выявили явного победителя, а скорее показали, что результаты сильно зависят от контекста и среды приложения.
Поскольку SWT использует для рендеринга собственную системную библиотеку, его элементы выглядят одинаково. », как и собственная графика системы.
Благодаря «конвертной» архитектуре SWT, в отличие от Swing, не требует обновления в приложениях, где он используется для небольших изменений собственных библиотек графического интерфейса.
Другими словами, при незначительном обновлении внешнего вида или поведения собственных библиотек в операционной системе это сразу же отражается в программе, написанной на SWT. И наоборот, это относится к Swing, где при каждом изменении операционной системы библиотека Swing должна обновляться, чтобы начать «имитировать» новое поведение.
Вывод:
В этой статье вы прочитали обзор на Java библиотеку Standard Widget Toolkit, для работы с графикой, а точнее с графической оболочкой.