As of the release of version 1.2 back in early 2009, JavaFX now includes support for both desktop and mobile development. The NetBeans IDE offers full support for mobile development, including mobile device emulator, packaging, and deployment. If you are not a NetBeans user, you can use the javafxpackager tool, along with the emulator tool, to emulate mobile content on your workstation.
Note
As of version 1.2 of the SDK, JavaFX Mobile development is only supported on the Windows platform.
JavaFX Mobile is a software layer that runs on top of the Java ME (specifically, the CDC profile) on smartphones capable of providing rich content and an engaging experience. Because Java ME is already supported on a large number of handset models, JavaFX has the potential to be widely available on mobile devices.
When writing your application, you need to select APIs carefully to maximize portability. If you know that your application will only run on the desktop, you are free to exploit the desktop APIs without portability worries. However, if you plan to push your application to both the desktop and the mobile environments, you will then be constrained to use APIs that satisfy both desktop and mobile runtimes. A good rule to follow is to program using common profiles as a common denominator to arrive at an application that can run on both profiles.
If, on the other hand, your application is strictly targeted for the mobile environment, then you will have more freedom to take advantage of the Java ME features for mobile devices, such as Bluetooth and GPS. Another interesting issue that arises with mobile development is the constraint created by physical characteristics of the device, including input mode, screen size, CPU, and memory. When targeting mobile environments, be aware of the limitations of the mobile profile. Use some of the following points as guidelines:
JME is not JS do not expect the standard Java libraries to be available on the mobile runtime. While some stripped down version of Java SE APIs are present in ME, others do not exist at all. For instance, avoid using Swing components in your application; instead, use the native JavaFX controls, and let the runtime module translate them to their Java ME component counterparts.
Screen reflow newer devices support screen orientation changes; you may have to create GUI layouts that let your components automatically resize or reflow based on the orientation of the screen. The layout of your controls should reflow gracefully to handle portrait or landscape screen modes.
Use vector graphics try to use vector graphics where possible, as they are easily portable between platforms and can resize with no degradation.
Apply affects ahead of time as of version 1.2 of the SDK , paint effects are not part of the common profile; therefore, if you need paint in your effects, create a bitmapped image with the paint effect already applied, then load the image.