Что касается Swing и AWT, почему один считается легким, а другой - тяжелым? - PullRequest
1 голос
/ 23 марта 2009

Почему говорят, что Swings тяжелый, а AWT - легкий в JAVA?

Ответы [ 4 ]

12 голосов
/ 23 марта 2009

AWT называется «тяжеловесным», поскольку в основном каждый компонент AWT является компонентом собственной платформы. AWT реализован поверх встроенного инструментария GUI платформы. Это также объясняет, почему AWT был довольно ограничен по сравнению с Swing. Он использует наименее общий знаменатель, насколько это реализовано.

Swing, с другой стороны, реализован в Java почти для всего, кроме компонентов верхнего уровня (windows ...). Могут быть собственные компоненты, и они все еще называются «тяжелым весом».

Взгляните на эту страницу от IBM для подробного сравнения AWT, Swing и SWT.

РЕДАКТИРОВАТЬ: Я предполагаю, что это был ваш вопрос, хотя тяжелые / легкие, кажется, перевернут в вашей фразе. Тяжелый / легкий вес - это стандартное наименование в наборе инструментов Java GUI, так что я пошел с моим пониманием. (спасибо BobbyShaftoe за указание на это).

1 голос
/ 26 марта 2009

В мире Java компоненты AWT считаются «тяжелыми», поскольку они используют базовые нативные компоненты. Когда вы создаете экземпляр java.awt.Button , вы фактически запрашиваете базовую ОС нарисовать этот объект для вас.

Swing, с другой стороны, является «легковесным», потому что он в основном зависит от API Java2D для выполнения всех рисований, которые, в свою очередь, делегируются базовой ОС или аппаратному обеспечению. Это также объясняет, почему Swing нужны все те компоненты пользовательского интерфейса, которые фактически рисуют для имитации определенного внешнего вида (Windows, GTK, Motif и т. Д.).

Эта статья более подробно объясняет разницу между легкими и тяжелыми компонентами.

Надеюсь, это поможет.

0 голосов
/ 25 апреля 2016

Потому что у каждого «тяжеловесного» компонента есть собственный одноранговый узел, а у «облегченных» компонентов нет. Поскольку AWT имеет большой вес, каждая кнопка AWT имеет соответствующую кнопку MFC на платформе Windows или кнопку Motif на платформе Unix. Так как Swing легок, графика кнопки просто нарисована сверху рамки ... нет кнопки MFC или Motif. Вы можете найти больше информации по этой теме в статье Смешивание тяжелых и легких компонентов на сайте Sun.

0 голосов
/ 23 марта 2009

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

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