Drawing a line on canvas in Java ME
This code snippet demonstrates how to draw lines in a Java ME MIDlet.
Article Metadata
Code Example
Tested with
Compatibility
Article
Contents |
Overview
The Canvas class is used for drawing lines and other simple graphics. Since Canvas is an abstract class, in order to draw lines, you must implement your own class based on Canvas and implement the paint method which is used for drawing on the canvas. After that, this class may be used as displayable - it can be assigned as the current displayable and it can contain commands.
This MIDlet consists of 2 source files:
- DrawingLineMidlet.java - contains the MIDlet class.
- DrawingLineCanvas.java - contains the DrawingLineCanvas class, with implemented method paint which is used to draw a line.
Source file: DrawingLineMidlet.java
// Canvas for drawing line
private DrawingLineCanvas canvas;
public DrawingLineMidlet() {
setupCanvas();
}
/**
* Sets up canvas for drawing line.
*/
private void setupCanvas() {
canvas = new DrawingLineCanvas();
canvas.setTitle("Drawing the line");
canvas.addCommand(EXIT_COMMAND);
canvas.setCommandListener(this);
}
/**
* From MIDlet.
* Called when the MIDlet is started.
*/
public void startApp() {
// The initial display is the main form
Display.getDisplay(this).setCurrent(canvas);
}
Source file: DrawingLineCanvas.java
Postconditions
A canvas with a diagonal black line on a white background is drawn on the display.
Supplementary material
This code snippet is part of the stub concept, which means that it has been patched on top of a template application in order to be more useful for developers. The version of the Java ME stub application used as a template in this snippet is v1.1.
- The patched, executable application that can be used to test the features described in this snippet is available for download at Media:DrawingLine.zip.
- You can view all the changes that are required to implement the above-mentioned features. The changes are provided in unified diff and colour-coded diff (HTML) formats in Media:DrawingLine.diff.zip.
- For general information on applying the patch, see Using Diffs.
- For unpatched stub applications, see Example app stubs with logging framework.


(no comments yet)