Abstract Window Toolkit (AWT) es una colección de componentes (widgets) de interfaz gráfica de usuario (GUI) y otros servicios relacionados necesarios para la programación de GUI en Java.
Es el kit de herramientas de widgets de interfaz de usuario, gráficos y ventanas independientes de la plataforma original de Java.
AWT ahora es parte de Java Foundation Classes (JFC) y sirve como la interfaz de programación de aplicaciones (API) estándar para la programación de GUI en Java.
Desde J2SE1.2 en adelante, los widgets AWT fueron reemplazados en gran medida por el kit de herramientas Swing. La funcionalidad Swing se basa en AWT para la interfaz central con el sistema de ventanas nativo.
Sin embargo, el programador ahora puede elegir entre la apariencia del sistema nativo y la apariencia multiplataforma de Java.
Swing es preferido por la mayoría de los programadores de Java que todavía se adhieren al principio de escribir una vez, ejecutar en cualquier lugar (WORA) en el núcleo de la filosofía de Java.
En 1995, cuando Sun Microsystems introdujo Java como un lenguaje de programación independiente de la plataforma, AWT pretendía proporcionar una fina capa de abstracción sobre la interfaz de usuario nativa subyacente.
En esencia, el mismo programa Java, cuando se ejecuta en una PC con Windows, tendría la apariencia de una aplicación nativa de Windows y la apariencia de una aplicación nativa de Mac cuando se ejecuta en una Mac.
AWT incluye un conjunto de widgets, que proporcionan el subconjunto de funciones comunes a todas las plataformas nativas.
AWT también cuenta con un sólido modelo de manejo de eventos, herramientas de imágenes y gráficos (que incluyen clases de forma, color y fuente), administradores de diseño para diseños de ventanas flexibles y clases de transferencia de datos para cortar y pegar a través del portapapeles de la plataforma nativa.