Вопрос

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

Это было полезно?

Решение

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

С другой стороны, АВТ (Abstract Window Toolkit) — это мощный набор инструментов, поскольку он просто вызывает операционную систему для создания ее компонентов графического интерфейса.

А Эволюция системы окраски Swing раздел из Рисование в AWT и Swing статья объясняет разницу между легким и тяжелым весом:

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

[...]

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top