Programiranje v jeziku Java se je začelo začeti izvajati preprosto zaradi svoje zmožnosti prenašanja programov na več platform. To ne velja samo za namizne računalnike, ampak je Java prisotna tudi v žepnih računalnikih in celo v običajnih mobilnih telefonih. Zaradi tega je že veliko ljudi, ki želijo programirati za jezik Java, da bi izkoristili to veliko in rastoče tržišče.
Programiranje na Javi pomeni, da morate imeti prava orodja, da lahko svoj projekt hitro in učinkovito končate. Eno bistvenih orodij je komponenta GUI (Graphic User Interface). To vam omogoča enostavno dodajanje grafičnih komponent brez večine potrebnega programiranja. V tej kategoriji lahko izbirate med dvema. Prvo je AWT (Abstract Window Toolkit) in drugo je gugalnica, ki se je pojavila veliko pozneje.
Oba orodja imata svoje prednosti in slabosti, zaradi katerih sta primerna za različne vrste programskih potreb. AWT uporablja veliko domačih ukazov platforme, ki mu dajejo veliko hitrost. Če pa ga želite pretvoriti za uporabo na drugih platformah, morate spremeniti ukaze protipostavke. Swing na drugi strani uporablja čisto kodo Java, zaradi česar je zelo hitro prenosljiv na platformah za ceno hitrosti in zmogljivosti.
Druga značilnost nihanja je, da poskuša posnemati videz OS, ki ga izvaja, tako da spominja na domače okolje. To premaga AWT, saj uporablja izvorne ukaze; videti je natanko tako, kot izgleda domači uporabniški vmesnik. Glavna prednost nihanja je, da podpira veliko več funkcij kot tisto, kar počne AWT. Sestavni deli, kot so namigi in ikone, niso na voljo v AWT, medtem ko so v celoti uporabni v zamahu. Dodane funkcije in čista java zasnova swinga sicer pomenijo, da boste za delovanje programa potrebovali vtičnik java, medtem ko večina brskalnikov danes že podpira razrede AWT, kar odpravlja potrebo po nalaganju vtičnikov.
Če povzamem, če želite ustvariti preproste java-jabolčne aplete, bi vam lahko bili v veliko pomoč hitri in enostavni načini gradnje AWT. Če pa želite ustvariti popolno raztopljeno aplikacijo, boste morda pogledali, kaj lahko zamah ponudi. Izboljšan seznam komponent in prenosljivost se lahko izkažeta za bolj koristna.