Java Swing permite crear interfaces gráficas de usuario más elaboradas que AWT, ya que posee más opciones de personalización. Mientras que AWT es más básico y depende más de la plataforma subyacente, Swing utiliza código Java puro lo que lo hace más portátil, aunque a costa de velocidad.