Originariamente inviato da Skaffa
Ad esempio, volessi creare un programma di Chat con grafica stile Msn /skype/etc, come potrei fare?
Le principali librerie per la GUI in Java sono AWT, Swing, SWT. Hanno caratteristiche/funzionalità differenti, componenti in più o in meno e differenti tra loro, ecc...

Se non ti bastano i componenti standard di una di queste librerie, nemmeno personalizzandoli nell'aspetto usando le proprietà standard (bordi, colore, font, ecc....) o con Swing cambiando L&F, nessuno ti vieta di realizzare dei "tuoi" componenti che disegni tu completamente con del codice. Ti devi comunque basare su uno dei framework citati.
Ad esempio in Swing puoi estendere JComponent o JPanel e implementare tu completamente il disegno del componente. E questo richiede conoscenze dettagliate su come il framework gestisce il painting, gli eventi, ecc...

Quindi, invece di partire in quarta per cercare di fare una applicazione complicata e con grafica "sofisticata", decidi il framework da studiare e approfondisci la sua conoscenza cercando di comprendere come funzionano gli eventi, il painting, le questioni sui thread ecc....