Diferencia entre AWT vs Swing

Java es un software de desarrollo de aplicaciones independiente de la plataforma. Proporciona un conjunto de software que puede usarse para desarrollar aplicaciones. Uno de estos programas es AWT (Abstract Window Toolkit). Es un conjunto de interfaz de programa que se utiliza para crear componentes de interfaz gráfica de usuario (GUI) y otros servicios necesarios para GUI en Java. Forma parte de Java Foundation Classes. Facilita el desarrollo de la GUI. AWT incluye un conjunto de ventanas, gráficos y widgets de interfaz de usuario. También tiene un robusto manejo de eventos, herramientas de imágenes, un administrador de diseño para diseños de ventanas flexibles. En este tema, aprenderemos sobre AWT vs Swing y sus diferencias

Swing es el kit de herramientas más reciente basado en AWT. Swing le da al programador flexibilidad de independencia de plataforma. A diferencia de AWT, el programador puede crear objetos GUI más generalizados usando Swing.

Descripción general de AWT : AWT se utiliza para admitir la interfaz de usuario en la aplicación Java. Proporciona la abstracción de alto nivel para el programa Java ya que oculta los detalles subyacentes de la GUI. Dado que AWT es una compilación de API en el sistema operativo para proporcionar una interfaz gráfica de usuario para Java. Su componente depende de su contraparte subyacente (como la apariencia de ese sistema operativo) para manejar su funcionalidad. Por lo tanto, estos componentes a menudo se denominan componentes "pesados".

Las características de AWT incluyen:

  • Un rico conjunto de componentes de interfaz de usuario.
  • El robusto modelo de manejo de eventos
  • Layout Manager para diferentes diseños de ventanas
  • Las clases de transferencia de datos admiten cortar y pegar a través de la plataforma nativa.

Descripción general de Swing : Swing se basa en AWT, forma parte de Java Foundation Classes. Swing se basa completamente en Java, por eso su plataforma es independiente. Se utiliza para crear una GUI más efectiva que AWT.

Características del columpio:

  • Todas las características de AWT
  • Proporciona un amplio conjunto de componentes de nivel superior, como un árbol, paneles con pestañas, cuadros de lista, etc.
  • Aspecto y tacto enchufables.
  • No depende de los componentes pares.

Comparación cabeza a cabeza entre AWT vs Swing (infografía)

A continuación se muestra la comparación de los 11 principales entre AWT y Swing:

Diferencias clave de AWT vs Swing:

Como AWT es un puente entre la aplicación y la interfaz nativa subyacente, implementarlo en un nuevo sistema operativo puede incluir mucho trabajo. Porque requiere que un compañero nativo se vuelva a desarrollar. El uso de pares nativos limita la funcionalidad de AWT. AWT tiene dos niveles de API:

  • Uno proporciona una interfaz general básica entre la aplicación y el sistema operativo nativo.
  • Segundo widget de GUI que proporciona objetos de código subyacente impulsados ​​en el lienzo de AWT.

El uso de componentes nativos hace que AWT sea rápido. Por lo tanto mejora su rendimiento. Además, la mayoría de los navegadores web admiten AWT, no es necesario el complemento de Java para Applets AWT. Pero AWT tiene un conjunto de componentes más pequeño, por lo que los usuarios tienen que escribir código personalizado para obtener sus propios componentes basados ​​en AWT. Los componentes de AWT no admiten funciones como la barra de título y las barras de menú.

Swing es la extensión de AWT. No es el reemplazo exacto de AWT. Por lo tanto, tiene características AWT con la extensibilidad de JAVA. Por lo tanto, todos los componentes que están presentes en AWT también están presentes en Swing. Pero Swing no requiere programación de pares, por lo que es independiente de la plataforma y ligera. Además, Swing permite una mayor gama de componentes.

Swing es una arquitectura basada en módulos. Admite enchufes para una implementación personalizada. El usuario puede crear su propia implementación para anular la implementación predeterminada basada en Java. Swing también proporciona soporte para el mecanismo de tiempo de ejecución. El método de composición indirecta permite que el swing responda a los cambios de tiempo de ejecución de acuerdo con el entorno de la aplicación. Swing admite funciones como iconos y sugerencias de herramientas. Sun participa activamente en el desarrollo de Swing, por lo tanto, de vez en cuando swing obtiene nuevas características y mejora que antes.

La mayoría del navegador web no admite swing. Por lo tanto, uno necesita tener un complemento de Java para swing. El swing es más lento en comparación con AWT. Dado que los componentes Swing manejan su propia pintura (en lugar de usar API nativas como DirectX en Windows), esto puede encontrarse con fallas gráficas.

Tabla de comparación entre AWT vs Swing:

AWTCOLUMPIO
AWT significa Abstract Window Toolkit.Swing es parte de Java Foundation Classes (JFC).
AWT depende de la plataforma. Su código reside en el sistema operativo del sistema, por lo tanto, hace imposible la independencia de la plataforma.Los componentes del columpio están hechos en JAVA. Por lo tanto, lo hace independiente de la plataforma.
Los componentes AWT son pesados.Los componentes del columpio son livianos.
AWT no sigue MVC (Model View Controller).Swing se basa en MVC.
Los componentes AWT requieren java.awt.packageLos componentes oscilantes requieren javax.swing.package.
AWT no tiene Jtable y Jtabbed panel.Swing tiene panel Jtable y Jtabbed.
AWT depende de la plataforma, por lo tanto, no se admite una apariencia muy diferente.El swing puede tener una apariencia diferente.
AWT ocupa más espacio en la memoria.Swing ocupa menos espacio de memoria.
AWT es menos poderoso que Swing.Swing es la extensión de AWT, por lo que se eliminan muchos inconvenientes.
Look and Feel of AWT depende de la plataforma.La apariencia de Swing es independiente de la plataforma subyacente y el sistema operativo.
Los componentes de AWT dependen del código nativo (pares) para funcionar correctamente. Es por eso que estos componentes son "Componentes de peso pesado".Swing no tiene tal dependencia. Por lo tanto, estos componentes son "Componentes de peso ligero".

Conclusión:

Tanto AWT vs Swing se utilizan para crear una interfaz gráfica de usuario en Java. Ambos son robustos y tienen sus propios pros y contras. El componente AWT es apropiado para el desarrollo simple de aplicaciones que está diseñado principalmente para ejecutarse en un único sistema operativo. Mientras que swing es la última interfaz que está completamente construida en Java. Swing le da al usuario la libertad de codificar una vez y se ejecuta en cualquier lugar. También proporciona una gama más amplia de componentes que AWT. Depende totalmente de los requisitos del usuario. Aunque AWT es un desarrollo antiguo que todavía está sucediendo en AWT y está mejorando. Si el requisito es tener un aspecto y sentirse más como el sistema operativo subyacente, AWT sería una mejor opción. Si quieres una GUI más flexible, entonces el swing es bueno para usar.

Artículos recomendados

Esta ha sido una guía de la principal diferencia entre AWT y Swing. Aquí también discutimos las diferencias clave de AWT vs Swing con infografías y tabla de comparación. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Java vs Ruby: ¿cuál es mejor?
  2. Python vs Scala - Diferencias principales
  3. Diferencia entre HTML5 y Flash
  4. WordPress vs Drupal
  5. Etiqueta JavaFX
  6. Diseños JavaFX
  7. Tipos y cómo crear gráficos JavaFx?
  8. Control deslizante JavaFX
  9. ¿Cómo ingresar texto en JavaFX TextField?
  10. Constructores y métodos del botón JavaFx
  11. Los 15 métodos principales de HBox en JavaFX