Lightweight User Interface Toolkit - 1.3
Table of Contents
- 1. Overview
- 2. Prerequisites
- 3. Installation Instructions
- 4. Using the Toolkit
- 5. Known Bugs
- 6. Useful Information
The Lightweight User Interface Toolkit (LWUIT) is a widget library that you can bundle with your application. Inspired by Swing, it
runs on top of MIDP 2.0 and implements a peer-less graphics and UI model in a compact package with small footprint and moderate device
requirements. The lightweight characteristic makes it possible for resource-constrained devices to have a rich look and feel.
LWUIT has two components, the library itself, LWUIT.jar and the Resource Editor, ResourceEdit.exe.
In general you will use the library with an IDE or a toolkit such as the Sun Java™ Wireless Toolkit for CLDC. If you have a
recent version of the toolkit installed, its environment will support the addition of the LWUIT toolkit.
A minimal environment is:
3. Installation Instructions
Download the LWUIT distribution zip file and extract it.
The release contains the following:
- UIDemo - a NB 6.x project that demonstrates the library key features
- ResourceEditor.exe - a GUI utility to generate resource files and themes.
- docs - the release contains the API javadocs and a detailed developer guide
4. Using the Toolkit
With NetBeans: add the LWUIT.jar to your project(open [project properties]->[libraries & Resources] )
With the Sprint toolkit: create a LWUIT project.
With the wireless toolkit add the LWUIT.jar to [wtk_install_dir]\lib\ext and make sure the project bundles the
LWUIT.jar (see Settings->External APIs in the WTK)
Create a project . At least MIDP 2.0 and CLDC 1.1.
- Open the project.
- Click the Settings Button.
- Click the External APIs icon.
- For LWUIT.jar, check the Use and Bundle boxes.
5. Known Bugs/Issues
This is not an exhaustive list of known bugs. It includes those bugs that developers are most
likely to encounter when using LWUIT.
Known issues can be seen in the public lwuit issue tracker, to
file additional issues you can ask to join the project as an Observer role. Make sure to check the
LWUIT forum before filing issues.
The ResourceBuilder Ant task was removed for this version and replaced with an Ant task integrated with the
LWUIT Designer code base. This also required changes to the syntax of the Ant task/conf files to support
the new style structure in LWUIT, the documentation wasn't updated in time for this release you can refer to
the LWUIT Demo for usage examples and to the LWUIT blog where we will post some more documentation.
When opening older resource files with the new LWUIT designer all bitmap fonts will need
to be recreated since information related to bitmap fonts is lost due to deficiencies in the
The new LWUIT designer behaves differently with images and doesn't reencode them, hence if a JPEG is
added to the new LWUIT designer it would remain as a JPEG on the device unless it is scaled.
Previous versions of this tool always reencoded the added images.
Styles in LWUIT were changed significantly since the last drop, LWUIT no longer supports fgSelection/bgSelection
and instead uses selected/unselected styles. When loading a resource file created with the older version of LWUIT
a special compatibility mode is triggered which disables some of the features related to the new styles and is not
100% compatible with the older LWUIT. Further details on the reasoning and features related to the style
change are within the LWUIT blog.
Proguard 3.7 that ships by default with NB6.0 has issues with LWUIT – download version 4.x and replace
the Proguard version in NB - under [NB 6.0 install dir]\mobility8\external\proguard
- Default Commands collide with combo box popups, text components etc... - when a default command is assigned to a form
it will receive an actionPerformed event as well as the component that has focus. There is no
workaround for this issue other than avoiding the default command functionality in such cases, this functionality exists
for use cases where component based interaction isn't necessary such as navigation based on lists.
FlowLayout is buggy in complex layouts/scenarios - issue #72 (refrence numbers are from java.net issue tracker)
GroupLayout has bugs and is not recommended to be used until a matisse plugin is available - issue #21 (refrence numbers are from java.net issue tracker)
6. Useful Information
The LWUIT library was designed to run on any MIDP2.0 CLDC1.1, but there might be some broken devices that would fail to run a LWUIT based app.
For a more concrete devices DB see this link which is based on community reports.
Feel Free to edit this and report status on new devices
Copyright © 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to the license terms.