|
The JavaFX 1.1 Software Development Kit (SDK) contains libraries and supporting documentation for JavaFX application development. This document provides release information and known issues regarding the SDK. |
Contents
JavaFX 1.1 SDK is an update to the JavaFX 1.0 SDK and includes the following changes.
Key Release Components
- Official support for JavaFX Mobile
- Language improvements
- Performance and stability improvements
JavaFX 1.1 SDK
- JavaFX Mobile Emulator enables developers to begin creating advanced and expressive mobile content.
- Desktop Runtime update improves performance and stability.
- Better support is provided for developing mobile or desktop applications from the same code base.
JavaFX 1.1 Platform Features
- Support for "full screen" applications
- Improved support for applications that need to access resources across multiple domains
- Standard navigation method for cross-device content
Documentation
JavaFX 1.1 Language
- Addition of all Java numeric types (float, double, long, int, short, and byte) to the type system
- Sequence performance and footprint optimizations
- Dynamic footprint optimizations in animations
The system requirements for the JavaFX 1.1 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 |
Window transparency works only with JDK 6 update 10 at minimum. |
Fonts |
No support is provided for kerning, ligatures, or tracking (letterspacing) 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 the 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 |
Fonts |
No support is provided for kerning, ligatures, or tracking (letterspacing) in JDK 5. |
Local Storage |
None |
SDK |
None |
New Language Features
- The JavaFX 1.1 scripting languages includes Java numeric types (float, double, long, int, short, and byte).
- The underlying implementation of Number is now float, not double.
Source Compatibility Notes
- The JavaFX 1.1 compiler generates an error when an override is attempted on a
def or a public-read var. The JavaFX 1.0 compiler does not throw such errors. Therefore, you must modify your JavaFX 1.0 source code to remove any override on a def or a public-read var.
- The compiler is now stricter and enforces the use of the
override keyword when you override a method of a superclass. You must modify existing source code to conform to this new enforcement.
Binary Compatibility Notes
- To take advantage of the JavaFX 1.1 features, such as performance improvements, ensure that you rebuild your 1.0 JavaFX applications. When you do, you might have to adjust your code based on the source compatibility notes in the previous section.
- Your deployed JavaFX 1.0 application will continue to run as is. These applications use the compatible 1.0.1 runtime supplied by
dl.java.com.
- Mobile applications developed with the JavaFX 1.0 runtime must be compiled with the JavaFX 1.1 runtime.
Some functions from the common profile are not applicable for mobile devices:
- The cursor constants listed in the
javafx.scene.Cursor class do exist in the common profile. Setting cursor has no effect in mobile devices.
- Some mouse events are different on mobile devices. For example,
MouseEntered is not relevant for mobile. Therefore, the corresponding functions of the Node objects do not work in mobile applications. onMouseExited and onMouseWheelMoved are generated when a drag occurs, but general mouse movements (such as a hover) are not recorded.
Following are the desktop-specific classes and packages that are not implemented in the common profile and consequently do not work in mobile applications:
javafx.ext.Swing - All standard desktop UI components, such as buttons, icons, and labels
javafx.reflect - A package that provides reflective access to JavaFX values and types
javafx.scene.effect and javafx.scene.effect.light - Two packages to create visual effects, such as shadows, blurs, reflection, and lighting
ShapeIntersect and ShapeSubtract - Two classes in the javafx.scene.shape package to create compositions of geometric shapes
AppletStageExtension - A class from the javafx.stage that provides browser-specific functionality and, therefore, is not supported for mobile applications
FXEvaluator and StringLocalizer - Two classes from the javafx.util package
Applet Issues
- 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 issue affects only Windows systems that useJDK 6 update 10.
Workaround: Clear the Java cache and start the application again.
| 1. |
Go to Windows Control Panel and click Java. |
| 2. |
In the Java Control Panel, click the General tab. Under Temporary Internet Files, click Settings. |
| 3. |
Click Delete Files. |
| 4. |
Start the application again. |
- Issue RT-1950: JavaFX applets fail to recognize keyboard input if more than one tab is opened in Firefox 3.0 on Windows Vista and Internet Explorer 7 on Windows XP Service Pack 3.
Description: A JavaFX applet might become unresponsive to keyboard input events if the browser has multiple tabs opened and is loading different pages.
Workaround: Refresh the applet page or use only a single tab when accessing the applet.
- Issue RT-2299: Movement of applets from one monitor to another in a multiple monitor configuration is not supported.
Description: The JavaFX 1.1 SDK does not support multiple monitor configurations in 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 RT-3099: Applet hangs upon reload.
Description: After you install Java for the first time on a system through the JavaFX applet load in a browser, the page is reloaded. The loading graphic might appear indefinitely.
Workaround: Manually reload the page to force the applet to load properly.
Application and Deployment Issues
- Issue: Signed applications do not run if the application uses an invalid or self-signed certificate on a Windows system.
Description: Signed JavaFX and Java applications do not run on Windows if the application uses an invalid or self-signed certificate.
Workaround:
Open the Java Control panel. On the Advanced tab, in the Security section, make sure that the following two checkboxes are selected:
- Allow user to grand permissions to signed content
- Allow user to grant permissions to content from an untrusted authority
Compiler Issues
- Issue RT-1975:
FX.exit() does not properly clean up when running in a browser.
Description: Cleanup does not occur when you run a JavaFX application 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 so 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 JFXC-960: Although JavaFX Script String is a required type and cannot be null, this assignment 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 values, and check for null on values coming from Java and casts.
- Issue JFXC-2293: 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 RT-1935: The
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 RT-3046: Hiding a full-screen Stage causes painting artifacts.
Workaround: None.
Windows-Specific Issues
- Issue RT-3213: With a fresh installation of Windows, Java software might not install automatically.
Description: If you freshly install Windows, when you access a JavaFX application for the first time and choose to install Java,
Java might not install automatically. However, you should be directed to the Java site.
Workaround: Download and install Java manually, then restart Firefox and reload the page.
Mac OS Specific Issues
- Issue RT-1771: Intermittent
UnsatisfiedLinkError occurs with native JNLP files.
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:
| 1. |
Choose Applications > Utilities > Java > Java Preferences. |
| 2. |
Click the Security tab and click the Delete Files button. |
| 3. |
Execute the applet again. |
- Issue RT-1926: The Enter key does not work 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 RT-1828:
Description: In Mac OSX 10.4 with JDK 1.5.0_16, there is a URL resolution issue with Java Web Start which prevents the launching of some JavaFX applications, which rely on externally referenced graphics, including the Java Store.
Workaround: None
Media Issues
- Issue: Media width, height, and duration are unavailable as soon as the source is set.
Description: You expect to obtain the width, height or duration of streaming media as soon as the source is set, but instead you obtain the default value.
Workaround: To obtain the correct value, bind the width, height, or duration to on replace. For example, var screenHeight = bind myMedia.height on replace { .. }
- Issue: Playback stops when the current time reaches the buffer head.
Description: When playing a streaming media over a slow network, the playback pauses if it reaches the buffer head and does not play again without user or program intervention, even though the buffer is progressing.
Workaround: Regardless of whether you set the player to autoPlay, the workaround is to detect this pause when the current time is greater than 0 and programmatically enable play after a suitable buffer progress is detected. How much buffer progress is needed is for the application developer to decide.
- Issue: Buffer progress is not updated on Windows if the player pauses when it reaches the buffer head.
Description: If the application developer displays buffer progress when playing a streaming media and the media pauses because the current time reaches the buffer head, the engine it is not updated, even though the buffer is progressing inside.
Workaround: To enable the display of the buffer progress under such conditions, fetch or pseudo-update metadata, such as volume.
This action triggers the updating of the buffer progress variable.
- Issue: On a very slow network with high network latency, playing a streaming media, even though supported by the platform, throws an
UnsupportedMediaException.
Description: On a very slow network with high latency, obtaining enough of the stream to determine the type and its metadata might not always be possible. In such cases, the engine times out and reports an UnsupportedMediaException.
Workaround: Try playing the media again so that the engine can pick up enough data from the downloaded cache to enable further playback of the media.
Cross-Domain XML Support
- Issue RT-1512:
crossdomain.xml file is enabled.
Description: Ordinarily, an unsigned JavaFX application may only connect back to the web
server from which it originated. This restriction prevents the application
from causing denial-of-service attacks by making rapid connections
to arbitrary machines on the Internet. Web servers now have the facility to
selectively open their data to some clients through the use of a policy file
called crossdomain.xml.
The ability to check this file has been added to the JRE Version 6 Update 10
and also to JavaFX Script Runtime version 1.1. Additional information about
CrossDomain XML can be found in the
Java SE Plugin 6u10 Release Notes.
Mobile Issues
- Issue RT-2008: Media does not function on the mobile emulator.
Workaround: Ensure that the path to QuickTime native DLLs appears on the system PATH (<QT>/QTSystem).
By default, the QuickTime installer does this for you.
- Issue RT-2802: Text selection is not supported on mobile.
Workaround: None.
- Issue RT-2842: Mobile supports only JPEG and PNG images.
Workaround: None.
- Issue RT-3304:
The AbstractAsyncOperation and RemoteTextDocument APIs are not supported on mobile.
Description: The AbstractAsyncOperation and RemoteTextDocument classes in the javafx.async package are incorrectly listed as being in the common profile. In fact they are in the desktop profile. Applications that wish to remain portable across desktop and mobile should avoid using the javafx.async package.
Workaround: None.
- Issue MOBL-272:. Image on Mobile Emulator has object retention problem causing Out of Memory Errors
Description: After a number of images are loaded, the midlet may become unresponsive due to an uncaught java.lang.OutOfMemoryError exception.
Workaround: Either exit the mobile emulator or exit the midlet. To exit the mobile emulator, select Application > Exit. To exit the midlet, select Application > AMS Home, select the application name, then select End from the menu.
- Issue MOBL-1: Keypad navigation keys do not map to the emulator orientation.
Description: When an application maps functionality to the navigation arrows (up, down, right, left), the mapping does not readjust when the orientation is flipped.
Workaround: None.
- Issue MOBL-40: Mobile emulator does not start.
Description: Running a JavaFX application on either the command-line or in the NetBeans IDE fails and displays the error Cannot obtain device properties:null.
Workaround: Delete your javafx-sdk folder. The default location of this folder on Windows XP is C:\Documents and Settings\username\javafx-sdk.
On Windows Vista, the default location is C:\Users\username\javafx-sdk.
- Issue MOBL-111: Invalid media duration is reported for WAV and MIDI files.
Workaround: Use other media files, for example, MP3 and 3GP.
- Issue MOBL-116: The
MediaView.fitWidth and MediaView.fitHeight attributes do not have any effect when playback is paused.
Workaround: Either set these attributes before pausing playback
or call MediaPlayer.play() followed by MediaPlayer.pause() . These attributes then take a visible effect when playback is paused.
There is no audible effect.
- Issue MOBL-126: Bounds calculation is slightly off after a parallel transition.
Description: On mobile, the real bounds of a path are approximated, which means the end positions might be slightly off.
Workaround: None.
- Issue MOBL-201: Mobile loses linear gradient with repainting of application.
Workaround: When filling multiple shapes with one instance of gradient, do not use the
translateX and translateY variables. Instead,
apply the calculations directly to the centerX, centerY variables for a circle, or something similar for the shape you are filling.
- Issue MOBL-206:
MediaPlayer.stop() can resume playback when called on a paused MediaPlayer.
Description: Calling MediaPlayer.stop() sets the current time of the underlying MMAPI player to zero, which resumes playback at the same time.
Workaround: None.
- Issue MOBL-224: Painting issues occur when the scaleX/Y value of a circle is nonzero.
Description: When the stroke and fill are set for a circle and you increase the circle's scaleX/Y value above zero,
a small rectangle appears in the middle of the circle.
Workaround: None.
Samples Issues
- Issue APP-1408: All samples in the JavaFX 1.1 SDK point to a Sun internal server.
Description: All samples in the JavaFX 1.1 SDK point to a Sun internal server and so will fail to run. This issue affects only the case in which samples are run by clicking the Web Start link in the sample descriptions included with the stand-alone JavaFX 1.1 SDK.
Workaround: Use
the samples on javafx.com.
- 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.
|
|