JavaFX is nice for that, but to be honest I don’t think there’s really a future for JavaFX.
JavaFX was originally designed for rich web applications, but there’s really no point in going there anymore.
So both Swing and JavaFX are for desktop applications now, and while JavaFX has the potential to make things look very slick, being slick and sexy is usually not really what you want from a desktop GUI.
I’ve done a few projects with JavaFX, and there is a lot to say for it (I think it’s quite well designed), but at the end of the day I still prefer Swing.
And I even prefer Swing with plain Metal L&F (and I probably tested all 3rd party L&Fs). It’s clean and fast, and can still look quite slick. Especially if you put a little effort in to set a nice font, remove the ugly borders, enable AA in custom components etc.
The main problem I had with JavaFX is that it might enable slick ‘web-like’ looking stuff relatively easily, but Swing always felt much more responsive in more complex GUIs.
Desktop applications typically need to be totally responsive, clean and productive, and I think being ‘sexy’ usually doesn’t make a whole lot of sense there.
OTOH if you’re making GUI-heavy game for the desktop (or some other desktop application that needs to look exotic) for whatever reason and you don’t want to go OpenGL, JavaFX might still be a better option though.