|
The JavaFX 1.0 Software Development Kit (SDK) contains libraries and supporting documentation for developing JavaFX applications. This document provides release information and known issues regarding the SDK.
|
Contents
JavaFX 1.0 SDK is a significant update to the JavaFX Preview SDK and includes the following changes.
Java SE Development Kit (JDK)
- For Microsoft Windows, JDK 6 Update 7 is now the minimum supported version of the Java SE Development Kit (JDK). For Apple Macintosh, JDK 5 Update 13 (version 1.5.0_13) is now the minimum supported version of the JDK.
Graphics and Animation
- Path-based animation (animation of objects around a path)
- Transition library (list of transitions that enable developers to incorporate effects)
- Slide
- Zoom
- Rotate
- Image mask
- Stroke styles (dotted, dashed, and so on)
- Advanced clip support (clipping along an arbitrary path)
- Multiline text node
Media
- Cross-platform Video (On2 Codecs)
- Cross-platform Audio (MP3)
- Volume control
- Track control
- Native media framework support for the Mac
Web Services
- HTTP Client API
- JSON Parser
- XML parser
Language Improvements
- New access control mechanisms:
public, protected, package, public-init, and public-read
- Class members can now be defined with accessibility and visibility modifiers to restrict read and write access.
- The modifiers
public, protected, and package are similar to their counterparts in the Java programming language.
- The modifier
public-init defines a variable that can be publicly initialized by object literals in any package.
- The modifier
public-read enables variables to be publicly readable, but writeable only from within the current script.
- Default visibility changed to
script-private, which makes components safer and improves optimization
- Simplified variable declaration such that all variables are defined with
var or def and cannot be redefined
- Simplified language operators:
- Replaced
% with mod
- Replaced
< > with !=
Performance Improvements
- Reduced use of runtime memory of applications
- Reduced use of compile-time memory
- Reduced static footprint of applications
Platform, Tools, and JavaFX Reflection APIs
- Support for compiling JavaFX applications to both the Java Platform, Standard Edition(SE) and the Java Platform, Micro Edition (ME)
- Improved code completion and debugging support for integrated development environments (IDEs)
- Support for the JavaFX Reflection APIs, which enable calling the JavaFX APIs from the Java and JavaScript programming languages
The system requirements for the JavaFX 1.0 SDK are available in the JavaFX System Requirements document.
The following table offers a comparison between JDK 5 and JDK 6 on Windows.
 |
Animation and Graphics |
Some performance issues in JDK 5 have been resolved in JDK 6. |
Compiler |
The reference library for the JavaFX Script API is integrated in JDK 6. |
Media |
Support for the 32/64 bit Intel Power makes the "fat" binary larger. |
Web Services |
None |
Application and Deployment |
None |
UI Controls |
SwingButtonGroup.clearSelection() is inoperative. The dialog modality control is based on JDK 6. Window transparency works only with JDK 6 update 10 at minimum.
|
Fonts |
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5. |
Local Storage |
None |
SDK |
None |
The following table offers a comparison between JDK 5 and JDK 6 on Mac OS.
 |
Animation and Graphics |
JDK 5 uses Apple Quartz renderer, which provides better support for alpha blending and antialiased primitives. JDK 6 uses Sun 2-D renderer. The Sun 2-D renderer provides better performance for simple primitives and alias primitives. |
Compiler |
None |
Media |
Lower fps rates on 24 fps video samples have been experienced on JDK 5. JDK 6 tests resulted in 21-23 fps. JDK 5 tests resulted in 18-21 fps on the same hardware configuration. |
Web Services |
None |
Application and Deployment |
None |
UI Controls |
SwingButtonGroup.clearSelection() is inoperative. The dialog modality control is based on JDK 6. Window transparency works only with JDK 6 update 10 at minimum.
|
Fonts |
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5. |
Local Storage |
None |
SDK |
None |
Applet Issues
- Issue: Multiple instances of an applet are created while switching from one page to another in Firefox on JDK releases prior to JDK 6 update 10.
Description: Multiple instances of applets are created when switching back and forth from page to page. One instance is running outside the browser while another one is started outside of the browser. This issue occurs only with JDK 5 Update 17 on all supported operating systems.
Workaround: None.
- Issue: JavaFX applet fails to recognize keyboard input if more than one tab is opened in Firefox 3.0 on Windows Vista and IE7 on Windows XP Service Pack 3.
Description: In the Firefox 3.0 browser, a JavaFX applet might become unresponsive to keyboard input events if the browser has multiple tabs opened and loading different pages.
Workaround: Refresh the applet page or use only a single tab when accessing the applet.
- Issue: JavaFX SDK applets are not supported on the Mac OS.
Workaround: None.
- Issue: Movement of applets from one monitor to another in a multiple monitor configuration is not supported.
Description: JavaFX 1.0 SDK doesn't support multiple monitor configurations for some cases. When a browser running an applet is moved from one monitor to another, and the applet is then dragged out of the browser, repainting issues might occur.
Workaround: Move the applet back to the original screen.
- Issue: JavaFX application shortcuts might not be displayed on the desktop when the application is dragged on to the desktop from the browser and the browser is closed. This only affects Windows systems using JDK 6 update 10.
Workaround: Clear the Java cache and launch the application again.
| 1. | Go to Control Panel and click Java. |
| 2. | In the Java Control Panel, open the General tab. Under Temporary Internet Files, click Settings. |
| 3. | In the Temporary Files Settings dialog box, click Delete Files. |
| 4. | Launch the application again. |
Compiler Issues
- Issue: FX.exit() does not properly clean up when running in a browser.
Description: Cleanup does not occur when you are running a JavaFX Script in a browser that contains a timeline or user action that calls FX.exit(). The embedded stage is not cleared when the exit occurs, leaving the Stage still visible with its content possibly running.
Workaround: Use FX.addShutdownAction() and bind a Boolean to the Stage/Scene content such that it is cleared when an exit occurs. For example:
var exitCalled: Boolean = false;
FX.addShutdownAction(function():Void {
// Stop any Timelines if they have been created and started
exitCalled = true;
});
var s: Stage = Stage {
title: "Exit Sample"
scene : Scene {
content: bind if (not exitCalled) [
// Scene Content that will be displayed in the Browser Stage
] else [] // this will clear the Browser Stage
}
|
- Issue: JavaFX Script String is a required type and cannot be null, but this is not enforced by the compiler.
Description: The compiler does not enforce the assignment of null, initialization to null in an object literal, initialization to null in an initial value, cast of null value to String, argument passing or null returned from a Java method.
Workaround: Do not assign null. Check Java or cast value for null.
- Issue: No error is generated if an attempt is made to override a def or a public-read variable.
Workaround: Do not override def or public-read variables.
Graphics Issues
- Issue: Node.cache attribute interacts poorly with the DropShadow effect.
Description: The Node.cache attribute interacts poorly with some effects, including the DropShadow effect. Some filtered nodes are rendered incorrectly with the wrong location or with the wrong transform.
Workaround: Set the Node.cache attribute to false for the affected nodes.
- Issue: Adding a clip rectangle to a group with multiple ImageViews causes out-of-memory errors.
Description: In a NetBeans project, when a rectangle is assigned to an animation clip, an out-of-memory error occurs before the first thumbnail is displayed.
Workaround: Evaluate if smooth clipping is required, and if not, turn it off by providing smooth:false for the clipping shape. For example, smooth can be set to false if the clip is in an untransformed Rectangle:
Rectangle {
width: 100
height: 100
clip: Rectangle {
smooth: false // use "hard" clipping
width: 50
height: 50
}
}
|
- Issue: The icon variable of the Stage class has no effect.
Description: Setting icons for the Stage class has no effect. Instead, a default icon is used in the task bar for JavaFX application.
Workaround: None.
Mac OS Specific Issues
- Issue: Enter key doesn't work to accept in the End User License Agreement dialog box on Safari/Mac OS X/JDK 5.
Description: In the End User License Agreement dialog box, the Accept button is selected as the default option (highlighted), but the Enter key does not work on Mac/Safari.
Workaround: Use a mouse click to accept the End User License Agreement.
- Issue: Intermittent UnsatisfiedLinkError occurs with native jnlps.
Description: On Mac OS, you might receive an UnsatisfiedLinkError while running a JavaFX applet.
Workaround: Choose one of the following options:
- Exit the browser and start again.
- Clear the Java cache.
- Go to Applications > Utilities > Java > Java Preferences.
- Choose the Security tab and click the Delete Files button.
- Execute the applet again.
Media Issues
- Issue: Playing multiple, large or high-resolution WMV videos fills on Windows result in long load times or might cause the playback to stop.
Description: Playing multiple large or high-resolution videos simultaneously on Windows using WMV format, or playing one video after another can cause long load times or cause the video to stop playing.
Workaround: Play one video at a time by instantiating a MediaPlayer object instead of setting a new source to an existing MediaPlayer.
- Issue: Playing multiple FLV videos simultaneously on Mac OS with REPEAT_FOREVER set can cause REPEAT to fail for some videos.
Description: Playing multiple FLV videos with any resolution on Mac OS with REPEAT_FOREVER set might result in some videos not repeating.
Workaround: Do not play multiple videos simultaneously.
- Issue: File or getResource() based MP3 media may not return duration or an EndOfMedia event.
Description: When using a server side resource or accessing a local resource using file or getResource(), MP3 media may not return an EndOfMedia event.
Workaround: Use http based MP3 media instead.
- Issue: Media width and height is set to 0 by default on Mac OS.
Description: Media width and height is set to 0 by default and cannot be used to size the video on Mac OS using either JDK 5 or JDK 6.
Workaround: Preset a size for the video and scale it to fit the required size.
- Issue: Playing high resolution or large media files on a low bandwidth network can cause the playback to stop.
Description: Playing a high resolution or large media file over a low bandwidth network can cause the JavaFX application to stop playback. A typical case is playing a 640x480 video encoded at 30fps over a 128 kbps network. This would cause the media player to stop playback.
Workaround: Use a low resolution, low fps media file for low bandwidth networks.
- Issue: WMV videos playing over http on Windows do not repeat when the REPEAT_COUNT setting is used.
Description: Playing a WMV media file on Windows does not accept the REPEAT_COUNT setting therefore videos are not repeated.
Workaround: To repeat a WMV media file over http on Windows, catch the EndOfMedia (EOM) event, set currentTime=0 and call play().
- Issue: The REPEAT_COUNT setting is not recognized when playing an MP3 file using a jar protocol.
Description: The REPEAT_COUNT setting is not recognized when playing an MP3 file using a jar protocol. If REPEAT_COUNT is set, the MP3 repeats continuously.
Workaround: Do not set REPEAT_COUNT or count the number of repeats manually, then call pause.
- Issue: Playing multiple MP4 or MOV videos simultaneously can increase the CPU consumption to over 90% on Mac OS.
Workaround: Do not play multiple MP4 or MOV videos simultaneously.
- Issue: Buffering content does not work on Windows.
Description: Buffering content is supported on Mac OS only. It is not supported on Windows.
Workaround: Do not start playback until the entire file has been downloaded.
Mobile Issues
- Issue: Apple QuickTime libraries might install in the wrong JDK installation directory.
Description: QuickTime installs its libraries into one JDK installation directory. If multiple versions of the JDK are installed on your system, it choses one of them to install the libraries.
Workaround: Confirm that the JavaFX 1.0 Mobile Emulator Beta Release uses the correct JDK or copy the QuickTime libraries into the correct JDK directory.
- Issue: The
ImageView.viewport property is not supported on the JavaFX 1.0 Mobile Emulator Beta Release (Windows only).
Workaround: None.
- Issue: Media does not function on the JavaFX 1.0 Mobile Emulator Beta Release (Windows only).
Workaround: Check your QuickTime installation. Then do one of the following and restart the device manager:
- In the file
\JavaFX_SDK_install_dir\emulator\toolkit-lib\modules\bootstrap\conf\system.properties, set the qt.java.path property to point to the location of the QTJava.zip file. The default file location is C:\Program Files\QuickTime\QTSystem\QTJava.zip.
- Copy the
QTJava.zip file into the lib\ext directory of the JRE that runs the mobile emulator.
Samples Issues
- Issue: Samples are not displayed in the browser.
Description: If you access the Internet through a proxy, you might need to modify your proxy settings.
Workaround: For information about configuring proxy settings on the Java platform, go to the Java Networking and Proxies page.
- Issue: The RadialGradient effect is inoperative in the Primitive Shapes sample on the JavaFX 1.0 Mobile Emulator Beta Release.
Description: The Fill Radial button does not produce the expected gradient effect when running the sample on the mobile emulator.
Workaround: None.
- Issue: The Path API does not produce the desired effect in the Analog Clock sample on the JavaFX 1.0 Mobile Emulator Beta Release.
Description: Clock hands aren't rendered correctly in the Analog Clock sample on the mobile emulator.
Workaround: None.
- Issue: The url used in the JavaFX 1.0 SDK for the SimpleVideoPlayer sample video is incorrect. Please use the Simple Video Player sample from the web site.
Workaround: The correct url is: www.javafx.com/samples.
|
|