Swing was at least meant to do UI. Web stack is not; webapps are essentially a pile of ugly hacks on top of a document rendering engine, and it really, really shows - especially when you have webapps pretending to be native (e.g. webview-based apps on mobile).
Also, for Java there's JavaFX (a de-facto standard UI toolkit for Java), which is very nice to work with.
Also, for Java there's JavaFX (a de-facto standard UI toolkit for Java), which is very nice to work with.