Quins són els avantatges/desavantatges de Swing sobre AWT?

0
8958

Swing proporciona un conjunt de components més ric que AWT. Estan 100% basats en Java.

D'altra banda, AWT es va desenvolupar amb la mentalitat que si un component o capacitat d'un component no estava disponible en una plataforma, no estarà disponible en cap plataforma. Alguna cosa ràpidament portàtil de la plataforma x a la y a la z. A causa de la naturalesa basada en iguals d'AWT, el que podria funcionar en una implementació podria no funcionar en una altra, ja que la integració entre iguals podria no ser tan robusta. Molts dels problemes d'AWT originals eren traçables a diferències en les implementacions entre iguals.

Això no vol dir que hi hagi menys errors a Swing, tot i que la majoria estan fora en aquests dies. És que si hi ha un error a Swing, és el mateix problema a totes les plataformes, cosa que no va ser el cas de l'AWT.

[Nota del gestor de preguntes freqüents] Hi ha alguns altres avantatges de Swing sobre AWT:

  • Swing proporciona components addicionals i funcionalitats addicionals als components de substitució de l'AWT
  • Els components swing poden canviar la seva aparença en funció de la biblioteca actual de "aspecte i sensació" que s'està utilitzant. Podeu utilitzar la mateixa aparença i sensació com la plataforma a la qual esteu, o utilitzar una aparença diferent
  • Els components swing segueixen el paradigma Model-View-Controller (MVC) i, per tant, poden proporcionar una interfície d'usuari molt més flexible.
  • Swing proporciona "extres" per a components, com ara:
    • Icones en molts components
    • Vores decoratives per a components
    • Consells d'eines per a components
  • Els components swing són lleugers (menys intensius de recursos que AWT)
  • Swing proporciona un doble buffer integrat
  • Swing proporciona suport de depuració de pintura quan creeu els vostres propis components

Swing també té alguns desavantatges:

  • Requereix Java 2 o un fitxer JAR independent
  • Si no tens molta cura a l'hora de programar, pot ser més lent que AWT (tots els components estan dibuixats)
  • És possible que els components swing que semblen components natius no actuïn exactament com els components natius