Hi Paras,
I think your summary is very accurate.
Sun has said that JavaFX is not meant to replace Swing. That said, there are many applications that you could implement in either technology. In general, the JavaFX implementation will be quicker and take less code, since JavaFX does much of the Swing-required plumbing for you. So, when would you use Swing? When JavaFX?
JavaFX has some Swing-based controls. You can also create wrappers to use any of the Swing controls that JavaFX has not yet implemented. (See this excellent article:
Mixing JavaFX and Swing.)
JavaFX excells at 2D graphics, animation, and effects. If you were instead using Swing, you'd have to use the
Java 2D API to implement that. You don't want to go there.
JavaFX has its own "native" UI controls that will work in the "common" environment. This includes tv and mobile as well as desktop. JavaFX Swing controls will only work in the desktop environment.
What does JavaFX offer above Adobe Flex or Ajax?
JavaFX has full access to the Java API and it lets you build well-engineered MVC applications.