Качели легкие? - PullRequest
       19

Качели легкие?

5 голосов
/ 06 января 2009

Всякий раз, когда я читаю о Swing, они говорят, что они легкие компоненты. Поэтому я просто погуглил Swing и обнаружил, что это означает, что Swing не зависит от нативных пиров. Вот почему они называются "легкий вес" ? Под легким весом я думал, что, возможно, компоненты Swing занимают меньше памяти, чем компоненты AWT. Разве это не так?

Ответы [ 3 ]

12 голосов
/ 06 января 2009

Swing считается легковесным, поскольку он полностью реализован на Java без вызова собственной операционной системы для отрисовки компонентов графического интерфейса пользователя.

С другой стороны, AWT (Abstract Window Toolkit) - это тяжелый инструментарий, поскольку он просто выполняет вызовы операционной системы для создания ее компонентов GUI.

Раздел Evolution of Swing Paint System из статьи Живопись в AWT и Swing объясняет разницу между легким и тяжелым весом:

Когда исходный API AWT был только для JDK 1.0 существовали тяжелые компоненты («тяжелый вес» означает, что компонент имеет свой собственный непрозрачный нативный окно). Это позволило АВТ полагаться сильно на подсистеме краски в каждом родная платформа.

[...]

С введение легкого веса компоненты в JDK 1.1 («легкий» компонент тот, который повторно использует родное окно его ближайшего тяжелый предок), нужен AWT осуществить обработку краски для легкие компоненты в общем Java-код.

Поскольку Swing реализован на Java, у него есть некоторые недостатки в производительности, однако я слышал, что производительность улучшилась в последних выпусках Java.

Преимущество Swing состоит в том, что он имеет гораздо больше доступных компонентов, таких как JTable и JList, которые более графические и расширяемые, чем компоненты, предоставляемые в AWT, что позволяет для разработки более насыщенных графикой приложений.

8 голосов
/ 06 января 2009

Легкий или тяжелый - это вопрос о том, как реализованы компоненты пользовательского интерфейса. Тяжелые компоненты обертывают объекты операционной системы, легкие компоненты - нет. Они реализованы строго в JDK.

0 голосов
/ 18 июня 2016

Это просто дополнение, в котором рассматриваются вопросы тяжеловесов и легковесов в другом контексте: модель программирования.

В этом контексте Swing определенно тяжелый и сложный. Он не считается подходящим для реализации тонких клиентов, и учитывая тот факт, что сегодня существует так много различных устройств, Swing, по сути, является мертвой технологией, хотя Oracle еще не удалила ее ... пока (также см. JavaFX в качестве альтернативы). ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...