Йонас,
Swing узагальнює основу вашої базової архітектури, щоб забезпечити вам нейтральну роботу користувачів на платформі. Єдиним важким компонентом (надається ОС) є контейнер JFrame, а решта в значній мірі обробляє Swing takeit. З іншого боку, AWT просить операційну систему намалювати всі його компоненти інтерфейсу, це означає, що це швидше в багатьох способах, як ви використовуєте рідні компоненти інтерфейсу, характерні для ОС. SWT намагається досягти середнього рівня, для різних стандартних компонентів, таких як кнопки та мітки (які доступні на більшості ОС), він дозволяє ОС працювати з тими, а також для інших спеціалізованих компонентів, SWT буде працювати з створенням для вас.
Коли було сказано, я можу окреслити недоліки.
(1) Оскільки інструментарій створює та надає вам компоненти, а не запитує ОС, ви не можете скористатися швидкістю вбудованих компонентів, що надаються ОС.
(2) Користувацький інтерфейс не є особливо привабливим, оскільки він виглядає чужорідним для більшості платформ ОС, що стосується того, яким виглядом і виглядом ви користуєтесь.
(3) Деякі з менеджерів макетів, тобто GridBadLayout тощо, можна краще спростити. Я втратив підрахунок кількості проектів, над якими працював, де люди загорнули GridBagLayout в якийсь замовлений код, щоб отримати більш простий спосіб його використання.
Я б радив вам написати просту програму в AWT, Swing та SWT і порівняти підходи до розробки кінцевого продукту між ними, а потім переглянути різні коментарі інших розробників і вирішити, який із них найкраще працює. Я багато років працював із Swing, і я використовував неприязний SWT, але я зрозумів, що Swing набагато складніше, ніж це потрібно, порівняно з іншими рамками.