JavaFX 2.1 Release Notes

The JavaFX 2.1 release includes the JavaFX Software Development Kit (SDK) for the Windows and Mac OS X platforms. The JavaFX SDK provides the tools and technologies for developing JavaFX applications. This release also includes the JavaFX Runtime for the Windows platform.

In addition to a number of bug fixes, this release includes:

  • Media H.264 and AAC support

  • Mac OS X support

    Applications must be packaged for the desktop, Web and Web Start applications are not yet supported.

  • LCD text

  • UI enhancements, including controls for Combo Box, Stacked Chart, and application-wide menu bar

  • Webview to support JavaScript to Java method calls

Note that a standalone JavaFX SDK and JavaFX Runtime is available only for the Windows platform. The JavaFX SDK is installed with Java SE 7 update 4 for both the Windows and Mac OS X platforms. The JavaFX Runtime is installed with the JRE for the Windows platform.

System Requirements

See the JavaFX System Requirements document for information on the hardware and software prerequisites.

Getting Started

To get started with the JavaFX SDK, review the documentation provided at Good starting points include:


Sample JavaFX applications are available at Download the zip file that contains the samples for your operating system and extract the files to a directory of your choice. After extracting the files, the samples are in the javafx-samples-version directory, where version is the version of JavaFX with which the samples were built.

Read the javafx-samples-version/samples_readme.txt file for information on running the samples.

Source code for each sample is in the javafx-samples-version\src directory. To view the source code, go to the javafx-samples-version\src\sample directory, where sample is the name of the application in which you are interested. Each of the sample source directories is a NetBeans project. Follow the steps in Setting Up NetBeans IDE with JavaFX to create a JavaFX-enabled platform in NetBeans IDE.

Supported Locales

The java.lang, java.util, and java.text packages from the Java Platform Standard Edition (Java SE) JDK are available to JavaFX applications that are interested in supporting languages other than English. For information on the locale support that these packages provide, see JDK 7 and JRE 7 Supported Locales.

Bidirectional and complex writing systems are not supported for JavaFX applications in this release.

The JavaFX Runtime environment is translated into the same languages as the Java SE Runtime Environment. See the "User Interface Translation" section of the JDK 7 and JRE 7 Supported Locales page for the list of languages and the scope of the translation.

The JavaFX SDK is translated into Japanese (locale code ja) and Simplified Chinese (locale code zh_CN).

Known Bugs and Issues

The following sections describe known issues with the code. Bugs are arranged by component.

The number for each issue refers to reports in the JavaFX issues dashboard in JIRA. You must be a registered JIRA user to access the reports. To see a report or the complete list of open issues, log in to the JIRA project for JavaFX at

App Model

  • Issue: RT-13739 Attempt to display error dialog to Mac OS X users fails.

    Description: After setting Mac to Headless mode, an attempt to display a dialog fails.

    Workaround: None.


  • Issue: RT-17931 JavaFX doesn't run in Chrome.

    Description: When using the Chrome browser on Windows to run a JavaFX application, you might see the following information bar:

    "The Java plug-in needs your permission to run".

    Workaround: Click on "Always run on this site", and then reload the page in the browser. The JavaFX application should start to load.

  • Issue: RT-17954 Application that triggers mixed code dialog could not be launched successfully.

    Description: If your JavaFX application contains both signed and unsigned code and causes the mixed code warning dialog to be shown, your application might stop working.

    Workaround: Prevent the mixed code warning dialog from being triggered by following the mixed code guidelines, which are described at Another option is to sign all of your application code to prevent the mixed code scenario.


  • Issue: RT-11736 Mac: InputMethods support on Mac.

    Description: Input methods for the Mac OS X platform are not supported in this release.

    Workaround: None.

  • Issue: RT-17026 Drag and Drop of custom data formats doesn't work on Mac OS X.

    Description: Custom data UTI formats on the Mac do not work.

    Workaround: Define your data as Serializable and use one of the existing UTI types.

  • Issue: RT-20247 Mac: [dnd] onDragDropped is not called, when DnD is from native, Mac only.

    Description: On Mac OS X, using native drag-and-drop fails because the onDragDropped method is not called.

    Workaround: None.


  • Issue: RT-5431 Mouse events should not be delivered to non-visible components.

    Description: Currently picking does not take into account the front clipping plane of the view frustum in culling picked node. This can result in returning the wrong picked node if a 3D transformed node exists between the viewer and the front clipping plane.

    Workaround: None.

  • Issue: RT-14413 JFXPanel does not work in full-screen mode.

    Description: AWT full-screen exclusive mode prevents initialization of the JavaFX D3D pipeline.

    Workaround: Construct a JFXPanel object before entering full-screen mode from any Swing JWindow.

  • Issue: RT-15117 Clipping does not work for objects in 3D

    Description: Objects to which a 3D transform is applied are not clipped correctly. This is a known perspective rendering bug for nVidia and AMD (ATI) GPUs.

    Workaround: None.

  • Issue: RT-16397 Region: asymmetric clipping in an image border that repeats.

    Description: Clipping in an image border is incorrect because the behavior of a Region object does not comply with the CSS spec. The Region object begins the image slice at the left of the image, however the CSS spec starts the image slice at the center of the image.

    Workaround: None.

  • Issue: RT-16398 Region: distortion in an image border that repeats. Repeated images have the wrong width-to-height ratio.

    Description: When the values defined for the -fx-border-image-slice and -fx-border-image-width properties do not match, the image is scaled to fit. However, the image is scaled disproportionately.

    Workaround: Size the image so that -fx-border-image-slice and -fx-border-image-width have the same value, so the image does not need to be scaled.

  • Issue: RT-16495 Native Clipboard: passing RTF to a native application does not work.

    Description: An application that tries to put rich text format (RTF) content on the clipboard fails silently and does not leave data formatted as text/rtf on the clipboard.

    Workaround: None.

  • Issue: RT-17973 Rendering bug while resizing applications.

    Description: Rendering artifact appears while resizing window on ATI Radeon series system.

    Workaround: On Windows - Upgrade the ATI driver to Catalyst 11.09 or higher.

  • Issue: RT-18254 Stage Icons don't load on Mac OS X.

    Description: When stage.getIcons().addAll(icon) is used to load an icon for an application on Mac OS X, the icon fails to load and the application uses the standard Java icon instead.

    Workaround: To set the icon for an application on Mac OS X, follow the instructions in the Bundle Programming Guide in the Mac OS X Developer Library.

  • Issue: RT-19662 Some GIF images cannot be loaded when scaling is applied.

    Description: Images that are scaled do not appear.

    Workaround: Scale the image using the ImageView class instead of scaling it in the constructor for the Image class.


  • Issue: RT-5238 Negative rate playback is not supported.

    Description: Playing back media in reverse (negative rate) is not yet supported.

    Workaround: None.

  • Issue: RT-9100 FLV and MP3 playback crash Java if the platform does not support the SSE2 instruction set.

    Description: The Java virtual machine could crash if the machine being used to play media does not support the SSE2 instruction set.

    Workaround: Make sure that the machine being used meets the JavaFX system requirements.

  • Issue: RT-17533 Mac MP3 decoder does not play short audio clips.

    Description: MP3 sources must contain at least three frames to be playable on Mac OS X.

    Workaround: Convert the MP3 clip to uncompressed (PCM) AIFF or WAV format, which are the preferred formats for short audio clips.

  • Issue: RT-19712 MediaPlayer silently fails to play MP4 via http.

    Description: MPEG-4 files which are not properly prepared for streaming might have to be completely downloaded before playback can begin.

    Workaround: Put headers for MP4 files at the end of the file. Otherwise, wait for the entire file to be downloaded.

  • Issue: RT-20075 Cannot decode more than a single H.264 track at once on Mac.

    Description: On Mac OS X, only one H.264 video track can be played at a time, and the graphics hardware must be supported by the Video Decode Acceleration framework.

    Workaround: None.


  • Issue: RT-20486 Exception when a stage is shown in MouseEntered handler.

    Description: An exception is thrown when a new window is shown in an event handler for MOUSE_ENTERED or MOUSE_EXITED events.

    Workaround: Enclose the code for showing the new window in a Runnable object and call the Platform.runLater() method.


  • Issue: RT-20824 DataAppReadme.html setup directions should be made generic to include multiple platforms.

    Description: The instructions for installing the MySQL drivers into GlassFish are for specific versions of NetBeans and GlassFish on Windows. Instructions for other supported versions and platforms are needed.

    Workaround: Manually copy the mysql-connector-java-5.1.13-bin.jar file from the netbeans-install-dir\ide\modules\ext\ to the glassfish-install-dir/glassfish/lib directory, where netbeans-install-dir and glassfish-install-dir are the directories into which the products were installed.

    If DataAppServer is run before the MySQL drivers are copied, the output will include an error message that directs the user to copy the drivers from a specific source directory to a destination directory.