Te daré unos cuantos detalles:
La versión del AWT que Sun proporciona con el JDK se desarrolló en sólo dos meses y es la parte más débil de todo lo que representa Java como lenguaje. El entorno que ofrece es demasiado simple, no se han tenido en cuenta las ideas de entornos gráficos novedosos, sino que se ha ahondado en estructuras orientadas a eventos, llenas de callbacks y sin soporte alguno del entorno para la construcción gráfica; veremos que la simple acción de colocar un dibujo sobre un botón se vuelve una tarea harto complicada. Quizá la presión de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de AWT
Ahora te doy razónes técnicas:
* AWT fue pensado como una API nativa al estilo de GDI, no fue concebida en sí como una interface gráfica final para aplicaciones Java (al menos eso es lo que dice SUN)
* Lo más fuerte de AWT es el manejo de eventos en sí (ya sabes, listener, callbacks, etc)
* Los Contenedores contienen Componentes, que son los controles básicos
* No se usan posiciones fijas de los Componentes, sino que están situados a través de una disposición controlada (layouts)
* El común denominador de más bajo nivel se acerca al teclado, ratón y manejo de eventos
* Alto nivel de abstracción respecto al entorno de ventanas en que se ejecute la aplicación (no hay áreas cliente, ni llamadas a X, ni hWnds, etc.)
* La arquitectura de la aplicación es dependiente del entorno de ventanas, en vez de tener un tamaño fijo
* Es bastante dependiente de la máquina en que se ejecuta la aplicación (no puede asumir que un diálogo tendrá el mismo tamaño en cada máquina) * Carece de un formato de recursos. No se puede separar el código de lo que es propiamente interface. No hay ningún diseñador de interfaces (todavía)