What is the difference between a "normal" Java desktop application (with AWT or Swing), and a Java application built with JavaFX?
What are the advantages and disadvantages of each?
解决方案
I think what you are asking is what are the pros and cons of building a JavaFX desktop application vs a Java Swing desktop application. After experimenting with both I can point out a few differences:
Java Swing
Pros:
Better visual designer and IDE support
More full featured set of controls
Good for building business applications such as user interfaces on top of a database where you don't need capabilities beyond the standard (and third party) controls.
Cons
Poor multimedia support
Building custom controls or custom skins is very difficult
No animation support
Java syntax can be awkward for building UIs. The IDE makes this less of an issue, but if you ever have to do anything manually it can get ugly.
JavaFX
Pros
Decent multimedia support
Easy to build custom controls, and all existing controls are skinnable using CSS (I haven't tried CSS yet though).
Animation support is good - not quite as good as flash but its good enough for basic animations.
The syntax seems better suited for building UIs, especially for hand coding them - which is good because you will need to hand code them.
Good for building multimedia applications or applications where you need a custom look.
Cons
The visual designer needs work, and personally I don't use it. This can be a big negative depending on your needs.
Still lacking in some controls, but this is getting better. The controls that do exist seem to work well.
Swing integration exists, but they are working on changing the engine so that it no longer relies on Swing. It is uncertain how well using Swing controls from JavaFX will work on the future. So I wouldn't avoid the use of Swing controls in JavaFX when possible.