Abstract Window Toolkit

Abstract Window Toolkit
Windows-форма с некоторыми примерами AWT

Abstract Window Toolkit (AWT) — это исходная платформо-независимая оконная библиотека графического интерфейса (Widget toolkit) языка Java. Сейчас AWT является частью Java Foundation Classes (JFC) — стандартного API для реализации графического интерфейса в Java-программе.

Также AWT является стандартной библиотекой GUI для некоторых профилей Java ME. Например, профили Connected Device Configuration требуют от среды исполнения Java на мобильных телефонах поддержки AWT.

Содержание

История

Когда Sun Microsystems впервые выпустила Java в 1995 году, виджеты AWT предоставляли тонкий уровень абстракции над основным родным пользовательским интерфейсом. Например, создание флажка AWT заставляет AWT напрямую вызвать более низкоуровневую нативную подпрограмму, которая и создает флажок. Однако, флажок (check box) на Microsoft Windows это не совсем то же, как флажок на Mac OS или на различных видах Unix. Некоторые разработчики предпочитают эту модель, поскольку она обеспечивает высокую степень соответствия основному оконному инструментарию и беспрепятственную интеграцию с родными приложениями. Другими словами, GUI программа, написанная с использованием AWT, выглядит как родное приложение Microsoft Windows, будучи запущенной на Windows, и в то же время как родное приложение Apple Macintosh, будучи запущенным на Mac, и т. д.. Однако, некоторым разработчикам не нравится эта модель, потому что они предпочитают, чтобы их приложения выглядели одинаково на всех платформах.

В J2SE 1.2 виджеты AWT были в значительной степени заменены аналогичными из Swing. В дополнение к предоставлению более богатого набора элементов интерфейса пользователя, Swing рисует свои собственные виджеты (с помощью Java 2D для вызова низкоуровневых подпрограмм местной графической подсистемы), вместо того чтобы полагаться на высоком уровне модуля пользовательского интерфейса операционной системы. Swing обеспечивает возможность использования либо системного «look and feel», который использует родной «look and feel» платформы, либо кросс-платформенный внешний вид («Java Look and Feel»), который выглядят одинаково на всех платформах. Тем не менее, Swing использует AWT для взаимодействия с родной оконной системой.

Архитектура

AWT предоставляет два уровня API:

  • Базовый набор виджетов графического интерфейса, таких как кнопки, текстовые поля (text box) и меню. Она также предоставляет AWT Native Interface, который позволяет библиотекам в нативном коде рисовать непосредственно на Canvas.

AWT также предоставляет приложениям некоторую высокоуровневую функциональность:

Ни AWT, ни Swing не являются по своей природе потокобезопасными. Таким образом, код, обновляющий GUI, или processes events должны выполняться в Event dispatching thread. Невыполнение этого требования может привести к взаимной блокировке или состязанию. Для решения этой проблемы служебный класс SwingWorker позволяет приложениям выполнять «тяжёлые» обработчики интерфейсных событий в потоке обработки событий.

Смешивание компонентов AWT и Swing

Начиная с Java 6#Java SE 6 Update 10 смешивание компонентов Swing и основных виджетов AWT часто приводило к нежелательным побочным эффектам, с появлением AWT виджетов над виджетами Swing, независимо от их определенного порядка наложения. Эта проблема объясняется тем, что архитектура рендеринга двух widget toolkits очень разная, несмотря на заимствование Swing’ом тяжеловесных контейнеров верхнего уровня из AWT[1].

Начиная с Java 6#Java SE 6 Update 12, стало возможно смешивать виджеты Swing and AWT без проблем с порядком наложения.

Реализация

Так как AWT является мостом к нижележащему нативному пользовательскому интерфейсу, его реализация на новой операционной системе может быть большой работой, главным образом для набора виджетов, которые требуют разработки с нуля нативных peers для каждого из виджетов AWT.

Одновременно с разработкой Java начал разрабатываться проект Caciocavallo. Его целью является предоставление Java API, основанных на OpenJDK для облегчения написания реализаций AWT для новых операционных систем.[2]. Для построения интерфейса используется Java2D. [3]. Все необходимые модификации включены в JDK начиная с версии OpenJDK 7[4].

См. также

Примечания

  1. Fowler, Amy Mixing heavy and light components. Sun Microsystems (1994). Архивировано из первоисточника 2 мая 2012. Проверено 17 декабря 2008.
  2. Torre, Mario FINAL PROPOSAL: Portable GUI backends (2 March 2008). Архивировано из первоисточника 2 мая 2012. Проверено 7 сентября 2008.
  3. Kennke, Roman Cacio Swing AWT peers (3 September 2008).(недоступная ссылка — история) Проверено 7 сентября 2008.
  4. How much has been pushed upstream?. openjdk.java.net (20 сентября 2009). — «You don't need anymore those patches, with the latest FontManager push, everything is upstream now, so just use the Cacio repo, it's completely self contained.»  Архивировано из первоисточника 2 мая 2012. Проверено 7 марта 2010.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Abstract Window Toolkit" в других словарях:

  • Abstract Window Toolkit — (AWT) est une bibliothèque graphique pour Java, faisant partie de JFC (Java Foundation Classes). Cette bibliothèque a été introduite dès les premières versions de Java mais depuis Java 2, la bibliothèque de gestion de fenêtre officielle est Swing …   Wikipédia en Français

  • Abstract Window Toolkit — The Abstract Window Toolkit (AWT) is Java s original platform independent windowing, graphics, and user interface widget toolkit. The AWT is now part of the Java Foundation Classes (JFC) mdash; the standard API for providing a graphical user… …   Wikipedia

  • Abstract Window Toolkit — Windows form with some AWT examples. La Abstract Window Toolkit (AWT, en español Kit de Herramientas de Ventana Abstracta) es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original… …   Wikipedia Español

  • Abstract Window Toolkit — AWT Elemente auf GNU/Linux, das Athena Widget set benutzend Das Abstract Window Toolkit (AWT) ist Bestandteil der Java Foundation Classes (JFC) und stellt eine Standard API zur Erzeugung und Darstellung einer plattformunabhängigen grafischen… …   Deutsch Wikipedia

  • Toolkit — may refer to an assembly of tools.It may also refer to:* Widget toolkit * Toolkits for User InnovationSpecific toolkits include:* Abstract Window Toolkit * Accessibility Toolkit * Adventure Game Toolkit * B Toolkit * Battlefield Mod Development… …   Wikipedia

  • Toolkit — Sur les autres projets Wikimedia : « Toolkit », sur le Wiktionnaire (dictionnaire universel) Toolkit est un mot anglais qui est utilisé en informatique et le plus souvent dans le contexte des interfaces graphiques. Ce mot, qui… …   Wikipédia en Français

  • Standard Widget Toolkit — Infobox Software name = Standard Widget Toolkit caption = The Eclipse IDE, an SWT based application developer = Free software community latest release version = 3.4 latest release date = release date|2008|06|17 latest preview version = 3.5 M1… …   Wikipedia

  • Motif (widget toolkit) — Motif Stable release 2.3.3 / March 19, 2010; 19 months ago (2010 03 19) Type Widget toolkit Website www.openmotif.org …   Wikipedia

  • Dojo Toolkit — Developer(s) Dojo Foundation Stable release 1.6.1 / May 20, 2011; 5 months ago ( …   Wikipedia

  • Google Web Toolkit — Тип Ajax framework Разработчик Google Написана на Java Операционная система Windows NT, Mac OS X …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»