Vorteil Swing: Immer noch direkt Teil des JDK, also ein denkbar einfacher Einstieg.
Nachteil Swing: Veraltete API.
Vorteil Eclipse SWT: Native GUIs, die über eine Java-API (eben SWT) erstellt wird. Sehr gute Layouts.
Nachteil SWT: Muss als Plattformspezifische Dependency hinzugezogen werden (Maven, Gradle). Angestaubte API. Eher schlechte Dokumentation.
Vorteil JavaFX: Von Haus aus "Hübsch" und einfach zu stylen. Moderne API. Gute Dokumentation.
Nachteil JavaFX: Muss als Dependency hinzugezogen werden (Maven, Gradle), auf Java 9+.
Generell: Fange nicht mit Java 8 an, sondern verwende entweder ein LTS-Build wie Java 11 (AdoptOpenJDK, ZuluFX (enthält sogar FX, keine Dependency nötig!), OpenJDK, Amazon Correto, ...) oder, wenn möglich gleich ein aktuelles Java. Im letzen Fall Java 13 von AdoptOpenJDK z.B. kombiniert mit JavaFX 13.
Beachte: JavaFX 13 sollte IMHO nicht mit Java 11 kompatibel sein, also möglichst immer die gleiche Version verwenden!