Emerging Technology
Fall Semester, 2004 An Example |
||
---|---|---|
© 2004, All Rights Reserved, SDSU & Roger Whitney San Diego State University -- This page last updated 04-Nov-04 |
CS 683 Emerging Technologies Fall Semester, 2004 Doc 24 An Example
Copyright ©, All rights reserved. 2004 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA. OpenContent ( http://www.opencontent.org/opl.shtml) license defines the copyright on this document.
CS 683 Fall 04 | Doc 24, An Example Slide # 2 |
J2ME in a Nutshell, Kim Topley, O’Reilly, 2002, chapter 5
CS 683 Fall 04 | Doc 24, An Example Slide # 3 |
public void paint(Graphics g) { System.out.println("paint"); int clipX = g.getClipX(); int clipY = g.getClipY(); int clipWidth = g.getClipWidth(); int clipHeight = g.getClipHeight(); g.setColor(WHITE); g.fillRect(clipX, clipY, clipWidth, clipHeight); g.setColor(BLACK); g.fillRect(boxX, boxY, boxLength, boxLength); } protected void moveBox() { System.out.println("First repaint"); repaint(boxX, boxY, boxLength, boxLength); boxX += 5; if (boxX > height) boxX = 0; boxY += 2; if (boxY > width) boxY = 0; System.out.println("Second repaint"); repaint(boxX, boxY, boxLength, boxLength); }
CS 683 Fall 04 Doc 24, An Example Slide # 4
This example is from code provided with J2ME in a Nutshell, Kim Topley, 2002, O’Reilly
package ora.ch5; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.List; import javax.microedition.midlet.MIDlet; public class GraphicsMIDlet extends MIDlet implements CommandListener { // The MIDlet's Display object private Display display; // Flag indicating first call of startApp protected boolean started; // Exit command private Command exitCommand; // Back to examples list command private Command backCommand; // The example selection list private List examplesList;
CS 683 Fall 04 | Doc 24, An Example Slide # 5 |
// The Canvases used to demonstrate different Items private Canvas[] canvases; // The example names. Used to populate the list. private String[] examples = { "Lines", "Rectangles", "RectangleFills", "Arcs", "FilledArcs", "Text" }; protected void startApp() { if (!started) { started = true; display = Display.getDisplay(this); // Create the common commands createCommands(); // Create the canvases createCanvases(); // Create the list of examples createList(); // Start with the List display.setCurrent(examplesList); } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { }
CS 683 Fall 04 | Doc 24, An Example Slide # 6 |
public void commandAction(Command c, Displayable d) { if (d == examplesList) { // New example selected int index = examplesList.getSelectedIndex(); display.setCurrent(canvases[index]); } else if (c == exitCommand) { // Exit. No need to call destroyApp // because it is empty. notifyDestroyed(); } else if (c == backCommand) { // Go back to main selection list display.setCurrent(examplesList); } } private void createCommands() { exitCommand = new Command("Exit", Command.EXIT, 0); backCommand = new Command("Back", Command.BACK, 1); } private void createList() { examplesList = new List("Select Example", List.IMPLICIT); for (int i = 0; i < examples.length; i++) { examplesList.append(examples[i], null); } examplesList.setCommandListener(this); }
CS 683 Fall 04 | Doc 24, An Example Slide # 7 |
private void createCanvases() { canvases = new Canvas[examples.length]; canvases[0] = createLinesCanvas(); canvases[1] = createRectanglesCanvas(); canvases[2] = createRectangleFillsCanvas(); canvases[3] = createArcsCanvas(); canvases[4] = createFilledArcsCanvas(); canvases[5] = createTextCanvas(); } private void addCommands(Displayable d) { d.addCommand(exitCommand); d.addCommand(backCommand); d.setCommandListener(this); } // Create the Canvas for the line drawing example private Canvas createLinesCanvas() { Canvas canvas = new LineCanvas(); addCommands(canvas); return canvas; } // Create the Canvas for the rectangles example private Canvas createRectanglesCanvas() { Canvas canvas = new RectanglesCanvas(); addCommands(canvas); return canvas; }
CS 683 Fall 04 | Doc 24, An Example Slide # 8 |
// Create the Canvas for the filled rectangles example private Canvas createRectangleFillsCanvas() { Canvas canvas = new RectangleFillsCanvas(); addCommands(canvas); return canvas; } // Create the Canvas for the arcs example private Canvas createArcsCanvas() { Canvas canvas = new ArcsCanvas(); addCommands(canvas); return canvas; } // Create the Canvas for the filled arcs example private Canvas createFilledArcsCanvas() { Canvas canvas = new FilledArcsCanvas(); addCommands(canvas); return canvas; } // Create the Canvas for the text example private Canvas createTextCanvas() { Canvas canvas = new TextCanvas(); addCommands(canvas); return canvas; } }
CS 683 Fall 04 | Doc 24, An Example Slide # 9 |
// A canvas that illustrates line drawing class LineCanvas extends Canvas { public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); // Fill the background using black g.setColor(0); g.fillRect(0, 0, width, height); // White horizontal line g.setColor(0xFFFFFF); g.drawLine(0, height/2, width - 1, height/2); // Yellow dotted horizontal line g.setStrokeStyle(Graphics.DOTTED); g.setColor(0xFFFF00); g.drawLine(0, height/4, width - 1, height/4); // Solid diagonal line in brightest gray g.setGrayScale(255); g.setStrokeStyle(Graphics.SOLID); g.drawLine(0, 0, width - 1, height - 1); } }
Rest of the Canvas classes not shown
Copyright ©, All rights reserved.
2004 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA.
OpenContent license defines the copyright on this document.