La biblioteca Swing fue desarrollada para mejorar la portabilidad de las interfaces gráficas de usuario en Java. Surge de la combinación de las Internet Foundation Classes con otras tecnologías para componentes gráficos. A diferencia de AWT que usa componentes nativos, Swing usa componentes desarrollados completamente en Java lo que asegura un comportamiento independiente de la plataforma.