Om det inte är absolut nödvändigt att använda Java skulle jag i så fall använda GTK+ med någon av Perl-, Python- eller Ruby-bindningarna då de även finns för Windows och samma kod kan användas på alla plattformar. Ska du istället arbeta i C bör du använda t. ex. GLib eller liknande för att inte hålla på med direkta system- och bilioteksanrop hos respektive plattform.
Det här är förstås väldigt subjektivt men om du däremot måste använda Java är nog SWT ett av de bästa alternativen när man väl får det att fungera. Jag har bara lekt med det i Mac OS X-miljö och då fick man föra in sitt program i en programbundle för att få det att fungera bra utanför Eclipse.