I use something called SnapKit (available on GitHub). It's like Swing and JavaFX had a baby, except that it has an abstraction layer that lets it compile to either JVM or JavaScript.
This sounded interesting, till I foundd that it is only for iOS and OS X. Am I looking at the right thing? :-)