Java Tutorial/J2ME/Line
Draw lines
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class GraphicsMIDlet extends MIDlet {
private Display display; protected void startApp() { Canvas canvas = new LineCanvas(); display = Display.getDisplay(this); display.setCurrent(canvas); } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
} class LineCanvas extends Canvas {
public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); g.drawLine(0, 0, width - 1, height - 1); }
}</source>
Plot 2D
<source lang="java">
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class Plot2DMIDlet extends MIDlet implements CommandListener {
private Command exitCommand; Display display; int[] line1 = { 80, 20, 60, 70, 50, 20 }; int[] line2 = { 20, 10, 50, 60, 90, 60 }; public void startApp() { int maxX = 10; int maxY = 100; Display display = Display.getDisplay(this); Displayable d = new Plot2DCanvas(line1, line2, maxX, maxY); exitCommand = new Command("Exit", Command.EXIT, 1); d.addCommand(exitCommand); d.setCommandListener(this); display.setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }
} class Plot2DCanvas extends Canvas {
int line1[]; int line2[]; int maxX, maxY; Plot2DCanvas(int[] line1, int[] line2, int maxX, int maxY) { this.line1 = line1; this.line2 = line2; this.maxX = maxX; this.maxY = maxY; } public void paint(Graphics g) { int width = this.getWidth(); int height = this.getHeight(); g.setGrayScale(0); g.drawLine(0, height, 0, 0); g.drawLine(0, height - 1, width, height - 1); int deltaX = width / maxX; int deltaY = height / maxY; g.setStrokeStyle(Graphics.DOTTED); for (int i = 0; i < line1.length - 1; i++) { g.drawLine(deltaX * i, height - deltaY * line1[i], deltaX * (i + 1), height - deltaY * line1[i + 1]); } }
}</source>