Swing and JavaFX are both
Java based UI Toolkits. With Swing you can create business application because it contains all the basic controls that are needed: Tables, Lists, Buttons, Textfields, etc.
But Swing was created over 10 years ago and therefore a lot of concepts are old and new functionality can't be integrated without breaking the API. Amy Fowler blogged about this some years ago when JavaFX was in the beginning:
http://amyfowlersblog.wordpress.com/2010/09/21/a-heartfelt-ramble-on-swing-javafx/
As said JavaFX contains a lot of new stuff. Here are some of the cool new features:
- CSS can be used to style controls and application
- Animation API
- Graph controls
- 3D Support
- touch support
- all components are vector based and not pixel based
- Media support (play videos)
- a Webview with WebKit backend to integrate rich HTML5 websites
- etc.