Hvad er fordelene/ulemperne ved Swing frem for AWT?

0
8949

Swing giver et rigere sæt komponenter end AWT. De er 100% Java-baserede.

AWT på den anden side blev udviklet med den tankegang, at hvis en komponent eller kapacitet af en komponent ikke var tilgængelig på én platform, vil den ikke være tilgængelig på nogen platform. Noget, der hurtigt kan transporteres fra platform x til y til z. På grund af den peer-baserede karakter af AWT, fungerer det, der kan fungere på én implementering, muligvis ikke på en anden, da peer-integrationen måske ikke er så robust. Mange af de oprindelige AWT-problemer kunne spores til forskelle i peer-implementeringer.

Dette betyder ikke, at der er færre fejl i Swing, selvom de fleste er ude i disse dage. Det er bare, at hvis der findes en fejl i Swing, er det det samme problem på alle platforme, hvilket ikke var tilfældet med AWT.

[FAQ Manager Note] Der er et par andre fordele ved Swing frem for AWT:

  • Swing giver både ekstra komponenter og tilføjet funktionalitet til AWT-erstatningskomponenter
  • Swing-komponenter kan ændre deres udseende baseret på det aktuelle "look and feel"-bibliotek, der bliver brugt. Du kan bruge det samme look og feel som den platform, du er på, eller bruge et andet look and feel
  • Swing-komponenter følger Model-View-Controller-paradigmet (MVC), og kan dermed give en meget mere fleksibel UI.
  • Swing giver "ekstra" til komponenter, såsom:
    • Ikoner på mange komponenter
    • Dekorative kanter til komponenter
    • Værktøjstip til komponenter
  • Svingkomponenter er lette (mindre ressourcekrævende end AWT)
  • Swing giver indbygget dobbelt buffering
  • Swing giver malingsfejlfindingsunderstøttelse, når du bygger dine egne komponenter

Swing har også et par ulemper:

  • Det kræver Java 2 eller en separat JAR-fil
  • Hvis du ikke er særlig forsigtig, når du programmerer, kan det være langsommere end AWT (alle komponenter er tegnet)
  • Swing-komponenter, der ligner native komponenter, virker muligvis ikke nøjagtigt som native komponenter