Now that we're getting close to the Technology Preview Release of the JavaFX SDK, the classes that have been created so far have been organized into a more fine-grained package structure. The impact is mainly in the import statements as you can see in this updated Hello/Goodbye example from a previous post. As a quick reference, the list below contains the packages in JavaFX and the classes that are contained in each package. By the way, you can download the latest Technology Preview Release here
and see the API documentation in more detail.
javafx.application
- Applet
- Application
- Dialog
- Frame
- Window
javafx.animation
- Interpolatable
- Interpolator
- KeyFrame
- KeyValue
- SimpleInterpolator
- Timeline
javafx.async
- AbstractAsyncOperation
- RemoteTextDocument
javafx.ext.swing
- AbstractButton
- AbstractPanel
- BorderPanel
- Button
- Canvas
- CheckBox
- CheckBoxMenuItem
- Cluster
- ClusterElement
- ClusterPanel
- ComboBox
- ComboBoxItem
- Component
- ComponentView
- Container
- ContainerGap
- Dialog
- FlowPanel
- Frame
- Gap
- GridPanel
- Icon
- Label
- Layout
- Layout.Alignment
- Layout.Relationship
- List
- ListItem
- Menu
- MenuItem
- Panel
- ParallelCluster
- PreferredGap
- RadioButton
- RadioButtonMenuItem
- ScrollPane
- ScrollableComponent
- SelectableButton
- SequentialCluster
- Slider
- TextField
- ToggleButton
- ToggleGroup
- Window
javafx.input
- KeyCode
- KeyEvent
- MouseEvent
javafx.lang
- DeferredTask
- Duration
- Sequences
javafx.scene
- Cursor
- CustomNode
- Font
- FontStyle
- Group
- HorizontalAlignment
- Node
- Orientation
- VerticalAlignment
javafx.scene.image
- Image
- ImageView
javafx.scene.paint
- Color
- CycleMethod
- LinearGradient
- Paint
- RadialGradient
- Stop
javafx.scene.transform
- Affine
- Rotate
- Scale
- Shear
- Transform
- Translate
javafx.scene.layout
- HBox
- VBox
javafx.scene.geometry
- Arc
- ArcTo
- ArcType
- Circle
- ClosePath
- CubicCurve
- CurveTo
- DelegateShape
- Ellipse
- FillRule
- HLineTo
- Line
- LineTo
- MoveTo
- Path
- PathElement
- Polygon
- Polyline
- QuadCurve
- QuadTo
- Rectangle
- SVGPath
- Shape
- ShapeIntersect
- ShapeSubtract
- StrokeLineCap
- StrokeLineJoin
- VLineTo
javafx.scene.text
- Text
- TextOrigin
javafx.scene.media
- Media
- MediaError
- MediaPlayer
- MediaTimer
- MediaView
javafx.scene.effect
- Blend
- BlendMode
- Bloom
- ColorAdjust
- DisplacementMap
- DropShadow
- Effect
- FloatMap
- Flood
- GaussianBlur
- Glow
- Identity
- InnerShadow
- InvertMask
- Lighting
- MotionBlur
- PerspectiveTransform
- Reflection
- SepiaTone
- Shadow
- Source
javafx.scene.effect.light
- DistantLight
- Light
- PointLight
- SpotLight
javafx.util
- StringLocalizer
Some Other Recent/Upcoming Changes
There have been a couple of changes to JavaFX language syntax recently:
- The "not equals" operator used to be <> but has been changed to the Java-style !=
- The modulus (remainder) operator has been changed from % to mod.
Also, a new web services library is in the works that will make it even easier to communicate with remote services required by your application. As a result, the JSON and XML libraries are being pruned from the Technical Preview Release branch, but they are still available in the SVN repository if you need them. You can read the current thinking about the web services library in this message on the [email protected] mailing list. As is typical with JavaFX libraries, the likely outcome will be a simplification of the design in that message.
Finally, I'd like to point out something that is very exciting to me -- the fact that JavaFX is migrating to a "node-centric" approach. As you may know, underneath the covers of the JavaFX UI for the desktop are Java Swing (components) and Java2D classes (graphical nodes). Eventually, most UI constructs in JavaFX will be graphical nodes, including the components (e.g. Button) and layout panels (e.g. BorderPanel). This will eliminate the need for using "adapter" classes like Canvas (to place a node on a panel) and ComponentView (to place a component on a Canvas). This will also make it easier to create UIs that have an "iPhone look and feel" that users will increasingly expect. As you can see by the fact that Dialog, Frame and Window exist in two packages (javafx.application and javafx.ext.swing), this migration has already begun. An examination of the JavaFX documentation for the Frame class in the javafx.application package, for example, will show you that the content attribute of its Window superclass contains a sequence of Node objects. Compare this with the Frame class in the java.ext.swing package whose Window superclass has a content attribute that still contains a sequence of Component objects. The latter, by the way, will be around at least until the migration to a node-centric UI is complete.
Have fun, and please post a comment if you have any questions!
Jim Weaver
JavaFX Script: Dynamic Java Scripting for Rich Internet/Client-side Applications
Immediate eBook (PDF) download available at the book's Apress site
Hi!
It's a great article for me, a newbie in JavaFX. I try to run your code in Netbeans 6.7.1, but i've got so may errors. The most important error is, all the import packages are unavailable. The compiler could not found the class. Once i populate all classes, my classes are so different with you've populated in this article. I'm using JavaFX 1.2.. any clue? i really need this clue Sir.
Thank you
Posted by: Hans Kristanto | July 30, 2009 at 05:26 AM
"Looks like I'll spend my entire long weekend trying to figure out how to make a simple 3x3 array of rectangles since GridPanel is gone huh?"
Bill,
There are a couple of options available now to create a grid of nodes
1) Use HBox and VBox, as shown in the following Create a Simple Calculator series:
http://javafxpert.com/weblog/simple-calculator-app/
2) Use the new Grid class in the JFXtras project. See the following post:
http://javafxpert.com/weblog/2008/12/jfxtras-01-release-utilities-and-addons-for-the-javafx-language.html
Regards,
Jim Weaver
Posted by: James Weaver | January 01, 2009 at 01:16 PM
Looks like I'll spend my entire long weekend trying to figure out how to make a simple 3x3 array of rectangles since GridPanel is gone huh?
Posted by: Bill Thayer | January 01, 2009 at 12:59 PM
Hi James !!
It's nice to see your blog and thanks a lot for your javafx script book. It helped me a lot in uderstanding the structure for writing my basic script. I wanted to know that If I have to make a big appliaction and required handling database,logging,network,internationlization etc, then will it be suitable to use JavaFx. Can we use any existing framework like Swing application framework to support life cycle. Please help
Thanks
Shahid
Posted by: Shahid | September 18, 2008 at 04:06 AM