| The JavaFX 1.3 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
The JavaFX 1.3 SDK is a significant update to the JavaFX 1.2 SDK and includes new UI controls and layout changes, performance improvements, development of applications for TV, and more. For a complete list of improvements see the What's New in JavaFX 1.3 document.
Your deployed JavaFX 1.2 applications will continue to run if they use the 1.2 runtime supplied by dl.javafx.com. However, you can take advantage of JavaFX 1.3 features by rebuilding your JavaFX 1.2 applications with the JavaFX 1.3 SDK. When you do, check the Migration Guide to see where any code adjustments might be required.
The system requirements for the JavaFX 1.3 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. |
Application and Deployment |
The differences are as follows:
- Window transparency works only with JDK 6 update 10 at minimum.
- JavaScript to JavaFX Script communication works only with JDK 6 update 10 at minimum.
- The dragging of an applet outside the browser works only with JDK 6 update 10 at minimum.
- An applet using at minimum JDK 6 update 10 is launched using JNLP.
- Runtime arguments (for example,
-Xint) can be passed from an HTML or JNLP file if an applet is launched using JRE 6 update 10 at minimum.
|
Fonts |
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5. |
The following table offers a comparison between JDK 5 and JDK 6 on Mac OS.
 |
Animation and Graphics |
JDK 5 uses the Apple Quartz renderer, which might cause some rendering issues. (See known issues 7671 and 7979.) JDK 6 uses the Oracle Java2D renderer.
The Oracle Java2D renderer provides better performance for simple primitives and alias primitives.
|
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. |
Application and Deployment |
|
Fonts |
No support is provided for kerning, ligatures, or tracking (letter spacing) in JDK 5. |
A beta release of the JavaFX 1.3 SDK is provided for the Ubuntu Linux and the OpenSolaris operating systems.
Media capabilities for JavaFX are still in development (or Alpha) on Ubuntu Linux and OpenSolaris and therefore should not be used at this time.
The following table offers a list of differences between these two platforms.
By default there is only GNU JRE 1.5.0 (gcj) and the Eclipse Java Compiler 3.3.1 (the latter in /etc/alternatives). |
By default there is only JRE 6 Update13 and no JDK. |
Stage transparency is disabled, due to an underlying bug in the JDK. |
Stage transparency is disabled, due to an underlying bug in the JDK. |
JavaFX browser applets require the new Java Plug-in found in JDK 6 Update 10 or later. The new Java Plug-in must be configured manually. |
JavaFX browser applets require the new Java Plug-in found in JDK 6 Update 10 or later. The new Java Plug-in must be configured manually. |
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 on 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
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
The following classes were added to the common profile in 1.3, but are not implemented on mobile. Use of these classes will not prevent an application to run on mobile, but will have no effect.
javafx.scene.effect and javafx.scene.effect.light - Two packages to create visual effects, such as shadows, blurs, reflection, and lighting
Support for JavaFX TV is based on the common profile. Most applications for the desktop can also be ported to the TV environment.
Application and Deployment |
CSS |
Graphics |
Media |
Mobile |
Production Suite Graphics |
Samples |
TV |
UI Controls
Application and Deployment
- Issue RT-6921: Memory leak in JavaFX applets.
Description: On Mac OS X, running several JavaFX applets in succession or reloading the same JavaFX applet several times in a row might cause an out-of-memory error. This error prevents subsequent execution of JavaFX applets, and in some cases, might cause your browser to crash. This bug is most noticeable on the Firefox browser.
Workaround: Use of the Safari browser is recommended.
CSS
- Issue: RT-8141:
PaintType converter causes a ClassCastException.
Description: In CSS, using the derive function in a -fx-border-color specification
causes a runtime exception. For example:
myseparator *.line {
-fx-border-style: dotted;
-fx-border-color: derive(-fx-background,-20%) transparent transparent transparent;
-fx-border-width: 1px;
-fx-padding: 3;
-fx-background-color: null;
}
Workaround: Create a new property to hold the derived value and reference that property in the -fx-border-color style.
For example:
myseparator *.line {
-my-derived-background: derive(-fx-background,-20%)
-fx-border-style: dotted;
-fx-border-color: -my-derived-background transparent transparent transparent;
-fx-border-width: 1px;
-fx-padding: 3;
-fx-background-color: null;
}
- Issue RT-8152: Changing the CSS style sheet at runtime causes an out-of-memory error.
Description: Changing the CSS style sheet at runtime might leak memory. If this occurs repeatedly, the system will eventually run out of memory.
Workaround: None.
- Issue: RT-8164:
-fx-font-size without a suffix ends up with infinity.
Description: The CSS parser fails to convert -fx-font-size values that do not specify units. For example, the following code does not create a 24-point font size as expected:
def text = Text {
content: "Hello"
style: "-fx-font-size: 24"
}
Workaround: Specify the font size units (typically using pt to denote points). For example:
def text = Text {
content: "Hello"
style: "-fx-font-size: 24pt"
}
Graphics
Media
- Issue: Distributing media in JAR files is not supported.
Description: For a complete description, see Can I include media in my JAR file?
- Issue: RT-6415: FXM/FLV files fail on low-bandwidth networks.
Description: FXM Media playback tends to fail during initialization on low-bandwidth networks. This issue affects the Windows platforms only. The probability of stalling correlates to the size of first video tag.
Workaround: Add a black frame at the beginning of the video.
- Issue: RT-8265: Some FLV files render oddly on Mac OS X 10.6.
Description: When the Perian QuickTime component is installed, some FLV files might play with either no video or corrupted video. This problem occurs on Mac OS X 10.6.
Workaround: None.
Mobile
- Issue: MOBL-12: A
PathTransition that uses the clip attribute of the background Node does not work on mobile devices.
Description: Clipping is implemented for rectangular shapes only.
Workaround: None.
- Issue: MOBL-315:
MediaView does not support some transformations.
Description: MediaView does not support the Opacity, Rotation, and Shear transformations. Instead, MediaView stays on top of all other nodes in the same Scene content.
Workaround: None.
- Issue: MOBL-1303: FLV/FXM video files are not supported on the mobile emulator on Mac platforms.
Workaround: None.
- Issue: MOBL-1306: Some UI Controls break with the
Shear and Rotate transformation.
Workaround: None.
- Issue: MOBL-1391: Holding down the Up, Down, Left, and Right keys does not work as expected.
Description: The KEY_REPEAT events are not supported on mobile. Thus, when components such as List View, Text Box, and Choice Button are in an interactive state, holding down the Up, Down, Left, or Right keys does not continuously move the cursor or selection.
Workaround: Users must repeatedly press the keys to move the cursor from line to line or from character to character.
- Issue: MOBL-1401: Vertical separators are not visible in the mobile environment.
Workaround: Use a Line node instead.
- Issue: MOBL-1408: Various problems occur when getting or setting the media time during MOV playback on Mac OS X.
Description: Getting or setting the media time during MOV playback from a JAR file might cause the mobile emulator to crash or fail to render video frames.
Workaround: Use a different video format.
- Issue: MOBL-1415: When an application creates a lot of images, the emulator might run out of memory.
Workaround: None.
- Issue: MOBL-1425: Bind to
TextBox.text or PasswordBox.text causes other binds to stop working.
Description: When an application binds to the TextBox.text or PasswordBox.text variable, the bind to the TextBoxSkin.width or PasswordBoxSkin.width value is not updated. As a result, the Text Box or Password Box does not layout properly.
Workaround: Do not bind to the TextBox.text or PasswordBox.text variable.
Production Suite Graphics
- Issue RT-3690:
__DIR__ constant in FXD descriptions causes problems when accessed from JavaFX Script.
Description: In FXD descriptions, the __DIR__ constant is used in the url attribute of the ImageView element to specify the location of images. However, if a url attribute containing a __DIR__ constant is accessed as a variable JavaFX Script code, the FXDLoader class does not resolve this constant to the correct path of the JAR file. Note that JavaFX images display correctly when loaded in the normal fashion; the issue only occurs when JavaFX Script code uses the FXD url attribute as a variable.
- Workaround: Expand the
__DIR__ constant explicitly in the code. For example, the url attribute in the FXD description might display the following value:
"{__DIR__}resources/Background.png"
This value
should be changed to the explicit location of the JAR file in the JavaFX application code, such as in this example:
"jar:file:/C:/projects/misc/LayoutTest/dist/LayoutTest.jar!/layouttest/resources/Background.png"
- Issue RT-5883: FXD
Duplicator does not support duplication of the skin variable.
Description: The Duplicator class in the javafx.fxd package does not support duplication of the skin variable in the Control and Behavior classes.
Workaround: None.
- Issue RT-6988: The FXD.load() function does not work when the relative path points to the parent directory.
Description: The FXDLoader.load() function does not work with a url value that contains a double-dot parent reference "..". For example: "{__DIR__}../prodfiles/resources/Fish.fxz"
Workaround: Use a full path to refer to the parent directory instead of the ../ relative-path.
- Issue RT-6998: The variable
FXDNode.placeholder is ignored under certain circumstances.
Description: The variable FXDNode.placeholder is ignored during background loading on the desktop when run on the TV platform.
Workaround: None.
- Issue RT-7942: During background loading of JavaFX graphics, load errors might not appear.
Description: Some load errors might not be reported properly as exceptions when JavaFX graphics (in FXZ format) are loaded in the background.
Workaround: None.
Samples
- Issue: Not all JavaFX 1.3 samples compile and run on the JavaFX 1.3 mobile and TV emulators.
Description: Only samples with the Mobile or TV Ready icon compile and run on the JavaFX Mobile or TV emulator. The icons are displayed in the left sidebar of the sample description.
TV
- Issue: TV-228: The
MediaPlayer.balance attribute does not work for media files.
Workaround: None.
- Issue: TV-413: The
textAlignment attribute of Text Node does not work.
Description: All text alignments (left, right, center, and justify) appear the same as left alignment.
Workaround: None.
- Issue: TV-637: Password boxes and text boxes set as non editable can be edited.
Workaround: None.
- Issue: TV-653-656:
MediaTimer does not work as expected.
Description: The MediaTimer time value might either be ignored or fired at the wrong time.
Workaround: None.
- Issue: TV-679: An exception occurs when
MediaPlayer.repeatCount is greater than 2.
Workaround: None.
- Issue: TV-692: The time displayed on the TV emulator might be one hour off.
Workaround: None.
UI Controls
|
|