Jonas,
L'oscillazione generalizza l'architettura sottostante per offrirti un'esperienza utente neutra rispetto alla piattaforma. L'unico componente pesante (fornito dal sistema operativo) è il contenitore JFrame e il resto è gestito in gran parte dallo scatto di Swing. AWT dall'altra parte, chiede al sistema operativo di disegnare tutti i suoi componenti dell'interfaccia utente, il che significa che è più veloce in molti modi poiché si utilizzano i componenti UI nativi specifici del sistema operativo. SWT cerca di ottenere una via di mezzo, per vari componenti standard come pulsanti ed etichette (che sono disponibili nella maggior parte dei sistemi operativi), consente al sistema operativo di gestire quelli e ad altri componenti specializzati, SWT gestirà la creazione per te.
Detto questo, posso delineare gli inconvenienti.
(1) Poiché il toolkit crea e rende i componenti per te piuttosto che chiedere al sistema operativo, non puoi sfruttare la velocità dei componenti incorporati forniti dal sistema operativo.
(2) L'interfaccia utente non è particolarmente attrattiva in quanto sembra estranea alla maggior parte delle piattaforme del sistema operativo per quanto riguarda l'aspetto e l'aspetto che si utilizzano.
(3) Alcuni dei gestori di layout i.e GridBadLayout ecc potrebbero essere meglio semplificati. Ho perso il conto del numero di progetti su cui ho lavorato in cui le persone hanno avvolto GridBagLayout in un codice su misura per ottenere un modo più semplice di usarlo.
Ti consiglio di scrivere una semplice app in AWT, Swing e SWT e confrontare gli approcci di sviluppo con il prodotto finale tra tutti, quindi rivedere i vari commenti fatti da altri sviluppatori e decidere quale funziona meglio. Ho lavorato con Swing per molti anni e ho usato antipatia per SWT, ma mi sono reso conto che Swing è molto più complicato di quanto dovrebbe essere rispetto ad altri framework là fuori.