Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

Тяжелые и легкие компоненты в Java

#java #swing #awt


Как можно лаконично и емко дать ответ на вопрос, что такое легкие и тяжелые компоненты,
в чем их различия, плюсы и минусы?
    


Ответы

Ответ 1



Если очень коротко, то: Тяжелые компоненты - это компоненты, которые имеют платформенно-зависимую реализацию. Легкие компоненты - это компоненты, полностью написанные на Java и не зависящие от peer-интерфейсов. Пояснение Приложения Java должны работать в любой, или хотя бы во многих графических средах. В связи с этим, требуется библиотека классов, независимая от конкретной графической системы, поэтому в JDK задачу решили следующим образом: были разработаны интерфейсы (также называются peer-интерфейсами), содержащие методы работы с графическими объектами. Классы библиотеки AWT (Abstract Window Toolkit) реализуют эти интерфейсы для создания приложений. Приложения Java используют данные методы для размещения и перемещения графических объектов, изменения их размеров, взаимодействия объектов. Для работы с экраном в конкретной графической среде эти интерфейсы реализуются отдельно для каждой. В каждой графической среде это делается по-своему: средствами этой оболочки (с помощью графических библиотек данной операционной системы). При выводе объекта, созданного в приложении Java и основанного на peer-интерфейсе, на экране создается парный ему (peer-to-peer) объект графической подсистемы операционной системы, который и отображается на экране. Эти объекты тесно взаимодействуют во время работы приложения. Поэтому графические объекты AWT в каждой графической среде имеют вид, характерный для этой среды и выглядят как "родные" окна. Начиная с версии JDK 1.1 библиотека AWT была переработана. В нее добавлена возможность создания компонентов, полностью написанных на Java и не зависящих от peer-интерфейсов. Такие компоненты стали называть "легкими" (lightweight) в отличие от компонентов, реализованных через peer-интерфейсы, названных "тяжелыми" (heavy). "Легкие" компоненты везде выглядят одинаково, сохраняют заданный при создании вид (look and feel). Более того, приложение можно разработать таким образом, чтобы после его запуска можно было выбрать какой-то определенный вид: Motif, Metal, Windows 95 или какой-нибудь другой, и сменить этот вид в любой момент работы. Эта интересная особенность "легких" компонентов получила название PL&F (Pluggable Look and Feel) или plaf. Была создана обширная библиотека "легких" компонентов Java, названная Swing. В ней были переписаны все компоненты библиотеки AWT, так что библиотека Swing может использоваться самостоятельно, несмотря на то, что все классы из нее расширяют классы библиотеки AWT. В данный момент Swing является основной библиотекой пользовательского интерфейса в Java, AWT - не дорабатывается. Использование библиотеки Swing - почти всегда предпочтительнее чем AWT, за исключением тех случаев, когда нужна обратная совместимость с Java 1.

Комментариев нет:

Отправить комментарий