Hacker ApprovedDepartments

Java Swing

Ranked 20 of 45 GUI frameworks by recommenders

Recommended as a free, consistent cross-platform Java GUI toolkit that runs well and feels native enough. Caveat: it requires more programming and does not look native.

Recommended as a free, consistent cross-platform Java GUI toolkit that runs well and feels native enough. Caveat: it requires more programming and does not look native.

37 people gave an opinion

recommend it
20
criticize it
17
approval share
54%
Each figure is one person. RecommendsCriticizes

Recommended in 10 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: not recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: not recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: recommended
  12. October 2026: recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 20 people recommend itNeeds 10 or more, met.
  • 1.1 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 10 of 13 monthsNeeds 4 or more, met.

The same three rules apply to every product, and the badge can’t be bought. How the badge works

What people say about it

The reasons people give, with the number of comments that give each one. Open a reason to read what they said.

Why people recommend it

Each mark is one comment

  • Consistent cross-platform, works everywhere

    “Swing is still easily the best, most consistent, and most native-feeling cross-platform environment.”

    Comment from 6 Jul 2026 in “Why low-latency Java still requires discipline?”

    “Works flawlessly at close to native speeds (GPU acceleration and all) on all platforms”

    Comment from 22 Mar 2026 in “Windows native app development is a mess”

    “semi-sucks, but it also works on windows and it actually is not that bad”

    Comment from 29 Sep 2026 in “Tcl/Tk 9.1”
  • Runs fast on modest hardware

    “Works flawlessly at close to native speeds (GPU acceleration and all) on all platforms”

    Comment from 22 Mar 2026 in “Windows native app development is a mess”

    “they all ran fine on much poorer hardware than a modern browser on an M1”

    Comment from 16 Feb 2026 in “JavaScript-heavy approaches are not compatible with long-term performance goals”

    “It was slow in 1999, which means it's fast now.”

    Comment from 4 Nov 2025 in “Some software bloat is OK”
  • Fits Java, less code

    “ultimately fit the language better than trying to bridge to Win32 or GTK/QT”

    Comment from 22 Mar 2026 in “Windows native app development is a mess”

    “so happy we could write UIs directly and a lot less code to understand”

    Comment from 22 Mar 2026 in “Reports of code's death are greatly exaggerated”
  • Mature and battle-tested

    “It's already battle tested and deployed everywhere you have Java.”

    Comment from 3 Mar 2026 in “Claude is an Electron App because we've lost native”

    “it was Swing that gained HighDPI support first (10 years ago)”

    Comment from 17 Mar 2026 in “Java 26 is here, and with it a solid foundation for the future”

What people warn about

Each mark is one comment

  • Looks ugly, not native

    “neither really looks like native, which has been a consistent complaint about them”

    Comment from 18 Oct 2026 in “JDK 28”

    “SWT and Swing will likely remain as ugly as they are for the next century”

    Comment from 3 May 2026 in “Windows API Is Successful Cross-Platform API”
  • Feels slow and heavy

    “GUI programming with Swing felt like molasses compared to native GUIs at that time”

    Comment from 1 Apr 2026 in “Oracle slashes 30k jobs with a cold 6 a.m. email”

    “did not feel lightweight at all on the hardware of the time”

    Comment from 3 Mar 2026 in “Zclaw – The 888 KiB Assistant”

Other GUI frameworks people recommend

The four most recommended other GUI frameworks, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.

Java Swing compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Qt19113359%1215 yrs7 owners—
GTK8511842%12——
Windows Forms763370%1215 yrs3 ownersApproved
SwiftUI7512138%114 yrs8 owners—
Java SwingThis page201754%10——
See all 45 GUI frameworks, ranked

What people said

37 of the 40 comments that mention it, newest first. Each links to the original comment.

“Swing was a joke compared to TkInter”

CriticizesComment from 26 Oct 2026 in “Type Server Protocol”

“It's not a good option for building a long term desktop application UI now though.”

MixedComment from 18 Oct 2026 in “JDK 28”

“neither really looks like native, which has been a consistent complaint about them”

CriticizesComment from 18 Oct 2026 in “JDK 28”

“semi-sucks, but it also works on windows and it actually is not that bad”

MixedComment from 29 Sep 2026 in “Tcl/Tk 9.1”

“Swing and JavaFX are also quite good, however require additional programming”

MixedComment from 12 Sep 2026 in “JEP 544: Ahead-of-Time Code Compilation”

“QT, Java Swing and Flash used to be this way historically”

CriticizesComment from 29 Aug 2026 in “GUIs should be fully keyboard-driven”

“Swing is still easily the best, most consistent, and most native-feeling cross-platform environment.”

RecommendsComment from 6 Jul 2026 in “Why low-latency Java still requires discipline?”

“When I learned Java Swing and elements were defined programmatically as percentages of their container that was kind of eye opening to me”

RecommendsComment from 7 May 2026 in “PySimpleGUI 6”

“windows have no minimum size because Swing doesn't expose that functionality”

CriticizesComment from 5 May 2026 in “Async Rust never left the MVP state”

“Swing being a glitchy pile of junk”

CriticizesComment from 5 May 2026 in “Async Rust never left the MVP state”

“Outside of Swing (which lacks access to a native browser element)”

CriticizesComment from 4 May 2026 in “Why TUIs Are Back”

“SWT and Swing will likely remain as ugly as they are for the next century”

CriticizesComment from 3 May 2026 in “Windows API Is Successful Cross-Platform API”

“which were a disaster for desktop apps”

CriticizesComment from 25 Apr 2026 in “Why I'm Done Making Desktop Applications”

“it's not a bad UI toolkit and widget set”

RecommendsComment from 21 Apr 2026 in “Laws of Software Engineering”

“for technical reasons fell short”

CriticizesComment from 18 Apr 2026 in “Claude Design”

“Swing is the new hotness now?”

MixedComment from 16 Apr 2026 in “Mozilla Thunderbolt”

“GUI programming with Swing felt like molasses compared to native GUIs at that time”

CriticizesComment from 1 Apr 2026 in “Oracle slashes 30k jobs with a cold 6 a.m. email”

“Works flawlessly at close to native speeds (GPU acceleration and all) on all platforms”

RecommendsComment from 22 Mar 2026 in “Windows native app development is a mess”

“so happy we could write UIs directly and a lot less code to understand”

RecommendsComment from 22 Mar 2026 in “Reports of code's death are greatly exaggerated”

“ultimately fit the language better than trying to bridge to Win32 or GTK/QT”

MixedComment from 22 Mar 2026 in “Windows native app development is a mess”

“Oracle/Sun was cheap and lazy.”

CriticizesComment from 19 Mar 2026 in “Stdwin: Standard window interface by Guido Van Rossum [pdf]”

“Swing was simpler in some ways than JavaFX.”

RecommendsComment from 18 Mar 2026 in “Java 26 is here, and with it a solid foundation for the future”

“it was Swing that gained HighDPI support first (10 years ago)”

RecommendsComment from 17 Mar 2026 in “Java 26 is here, and with it a solid foundation for the future”

“It's already battle tested and deployed everywhere you have Java.”

RecommendsComment from 3 Mar 2026 in “Claude is an Electron App because we've lost native”

“did not feel lightweight at all on the hardware of the time”

CriticizesComment from 3 Mar 2026 in “Zclaw – The 888 KiB Assistant”

“enjoying pure Java development on desktop (Swing, SWT, JavaFX)”

RecommendsComment from 3 Mar 2026 in “Why Objective-C”

“The reason these GUIs don't provide an API like shown in [1] is because it's an impractical design.”

CriticizesComment from 19 Feb 2026 in “Ladybird: Closing this as we are no longer pursuing Swift adoption”

“Native GUI libs look like shit out of the box, and are terrible to work with”

CriticizesComment from 16 Feb 2026 in “Breaking the Spell of Vibe Coding”

“they all ran fine on much poorer hardware than a modern browser on an M1”

RecommendsComment from 16 Feb 2026 in “JavaScript-heavy approaches are not compatible with long-term performance goals”

“Java swing is way underrated despite being very complex.”

RecommendsComment from 3 Feb 2026 in “The Codex App”

“Should just use javafx or swing”

RecommendsComment from 2 Feb 2026 in “The Codex App”

“it's what puts me off writing GUI apps in Clojure”

CriticizesComment from 1 Jan 2026 in “Easel Turns One One year of building my own IDE in Clojure”

“they only solved the widget part in my opinion”

MixedComment from 7 Dec 2025 in “Iced 0.14 has been released (Rust GUI library)”

“Nothing is as easy as JS/HTML/CSS.”

CriticizesComment from 5 Dec 2025 in “CSS now has an if() conditional function”

“none was as productive as VB for simple apps”

CriticizesComment from 2 Dec 2025 in “Garry Tan claims Zoho will be out of business due to vibe coding”

“Swing has no place in a sentence about good usability.”

CriticizesComment from 5 Nov 2025 in “Some software bloat is OK”

“It was slow in 1999, which means it's fast now.”

RecommendsComment from 4 Nov 2025 in “Some software bloat is OK”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.