Jonas
Swing generaliza su arquitectura subyacente para brindarle una experiencia de usuario neutral en la plataforma. El único componente de peso pesado (proporcionado por el sistema operativo) es el contenedor JFrame y el resto es manejado por Swing takeit. AWT, por otro lado, le pide al sistema operativo que dibuje todos sus componentes de la interfaz de usuario, lo que significa que es más rápido de muchas maneras a medida que usa los componentes de la interfaz de usuario nativos específicos del sistema operativo. SWT intenta alcanzar un punto medio, para varios componentes estándar como botones y etiquetas (que están disponibles en la mayoría de los sistemas operativos), permite que el sistema operativo se ocupe de esos y para otros componentes especializados, SWT se encargará de la creación por usted.
Dicho esto, puedo describir los inconvenientes.
(1) Dado que el kit de herramientas crea y renderiza los componentes por usted en lugar de preguntarle al sistema operativo, no puede aprovechar la velocidad de los componentes integrados proporcionados por el sistema operativo.
(2) La interfaz de usuario no es particularmente perjudicial, ya que se ve ajena a la mayoría de las plataformas del sistema operativo en lo que respecta a la apariencia que usa.
(3) Algunos de los administradores de diseño, es decir, GridBadLayout, etc., podrían simplificarse mejor. He perdido la cuenta de la cantidad de proyectos en los que he trabajado en los que la gente ha incluido GridBagLayout en un código a medida para obtener una forma más sencilla de usarlo.
Le aconsejo que escriba una aplicación simple en AWT, Swing y SWT y compare los enfoques de desarrollo y el producto final entre todos, luego revise los diversos comentarios hechos por otros desarrolladores y decida cuál funciona mejor. He trabajado con Swing durante muchos años y solía disgustar SWT, pero me di cuenta de que Swing es mucho más complicado de lo que debería ser en comparación con otros marcos existentes.