Creating Low-Level GUI Components
In
the high-level API, you have no control of
what is displayed on the screen and very little freedom to
“play” with the components programmatically. The
implementation is responsible for selecting the best approach for the
device. Some applications, however, such as games, may need more
control over what is drawn on the screen. The MIDP
javax.microedition.lcdui
package also provides a
low-level API for handling such cases.
In order to directly draw lines, text, and shapes on the screen, you
must use the Canvas
class. The
Canvas
class provides a blank screen on which a
MIDlet can draw. For example, let’s draw the string
“HelloWorld” on the screen. There’s a simple way to
do this: subclass the Canvas
class, which is an abstract class that extends
Displayable
, and override the paint( )
method.
The resulting class, MyCanvas
, is shown in Example 5-1.
The implementation of the paint( )
method uses the
drawing capabilities of the
javax.microedition.lcdui.Graphics
class.
In the paint( )
method, the drawing color is set
to red, then a rectangle is drawn in the current color. The methods
getWidth( )
and getHeight( )
return the width and height of the
Canvas
, respectively. The next call to
setColor( )
sets the drawing color to white; then
the string “Hello World!” is drawn in the top left corner
of the screen.
Example 5-1. Subclassing Canvas
import javax.microedition.lcdui.*; public class MyCanvas extends Canvas { public void paint(Graphics g) { g.setColor(255, ...
Get Wireless Java now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.