Java ME UI Frameworks
This article lists a number of UI frameworks that can be used to create more compelling UIs for your midlets than is possible using high-level UI classes (Form, List, TextBox, etc.). These frameworks are all based on the low level Canvas class. Note, LWUIT (below) has been ported to Nokia Asha by Nokia Developer, and is therefore a good choice where it is suitable for your use case.
Apime is a framework to offer more functionality to J2ME/MIDP. The core is the user interface, with basics components to make applications with swing structure.
Also it includes classes for file manage and customization (skins, internationalization, keyboards for different languages and mobiles, ...)
Fire (Flexible Interface Rendering Engine) http://sourceforge.net/projects/fire-j2me/
The basic set of Fire components offer all the functionality of the Java ME GUI components provided in the midp2 profile (Forms, Items etc.) plus a much more appealing user interface, themes, animations, popup menus, and better component layout.
J2ME GUI: http://www.garcer.com/
A lightweight GUI library offering all the basic components expected from a high-level user interface. Can be extended as well. High performance even on low-end devices, customizable styles, and compatible with a very wide range of devices.
J2ME Lightweight Visual Component Library (LwVCL): http://www.lwvcl.com/j2me.php
LwVCL supports both Java (J2SE/J2ME Personal Profile) and .NET platforms. Now a draft J2ME MIDP LwVCL version is also available.
J2MEPolish contains LUSH toolkit for customizing your MIDlet UI without changing the source code of your application. The design along with animations and effects are specified in external CSS files, very similar to the Web standard. There is also a WYSIWYG designer for UI design. Available under GNU General Public License as well as under commercial licenses.
J4ME is an open source library to help build J2ME applications. It solves many of J2ME's shortcomings including: UI, Logging, GPS and a library of methods left out of J2ME
jMobileCore library is powerful tool for creating J2ME applications. jMobileCore provides support for developing compact and rich GUI, fast data access and reliable communications and simplifies creation of multithreading MIDlet applications.
Kuix (Kalmeo User Interface eXtensions) provides most graphical elements (buttons, textfields, lists, menus, tabs, etc.) needed to create advanced user graphical interfaces and uses an XML/CSS approach to describe the screens and the user actions in the application. Kuix is an open project covered by a Non-Commercial EULA.
LWUIT (Lightweight UI Toolkit for Java ME) http://lwuit.java.net/
The Lightweight UI Toolkit makes it easy to create UI's that will look and behave the same on all devices using a programming paradigm similar to Swing. Main features include: Layouts, PLAF & Themes, Fonts, Touch Screen, Animations & Transitions, Widgets, 3D Integration, Painters, Modal Dialogs, External Tools, and I18N/L10N. One can run this toolkit on CLDC1.1 MIDP2.0/CDC PBP/SE.
MWT (Micro Window Toolkit) http://j2me-mwt.sourceforge.net/
Inspired by its UI big brothers as AWT, Swing and SWT, MWT comes into the scene providing an UI framework designed and optimized for small devices.
Nextel's Open Source J2ME Toolkits contain libraries for user interface and RMS development on J2ME handsets.
The windowing toolkit, OWT (Open Windowing Toolkit), employs a container/component model, and provides interfaces to permit developers to create their own user interface components. The toolkit is designed specifically for MIDP handsets with a small amount of screen real estate. It is built on top of MIDP's Canvas class.
In addition to database and scripting engine, OpenBaseMovil contains a declarative view definition language. With an XML file you can generate all of your views, and they are script and data aware: you can browse a set of results with less than ten lines of code.
The Synclast UI API is an extensible toolkit for creating colorful custom user interfaces on MIDP devices in an intuitive yet efficient manner.
Thinlet is a GUI toolkit, a single Java class, parses the hierarchy and properties of the GUI, handles user interaction, and calls business logic. Separates the graphic presentation (described in an XML file) and the application methods (written as Java code)
An open source Mobile UI library that provides rich UI features and theming support with lots of flexibility and resource friendliness.