public class Text extends MIDlet { PRivate Display display; // The display private TextCanvas canvas; // Canvas to display text private AnchorPtList anchorPt; // List to query for anchor point private int anchorPoint = Graphics.BASELINE Graphics.HCENTER; public Text() { display = Display.getDisplay(this); canvas = new TextCanvas(this); anchorPt = new AnchorPtList("Anchor point", List.IMPLICIT, this); } protected void startApp() { showCanvas(); } protected void pauseApp() { }
// Due to a bug in MIDP 1.0.3 we need to // force a clear of the display g.setColor(255, 255, 255); // White pen g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(0, 0, 0); // Black pen
// Choose a font g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM)); // Draw a dot at the center of the display g.drawLine(xcenter, ycenter, xcenter, ycenter); // x and y are always at the center of the display // Move the text around x and y based on the anchor point g.drawString("go j2me!", xcenter, ycenter, midlet.getAnchorPoint()); }
/*-------------------------------------------------- * Exit midlet or show anchor point selection list *-------------------------------------------------*/ public void commandAction(Command c, Displayable d) { if (c == cmExit) midlet.exitMIDlet(); else if (c == cmGetAnchorPt) { midlet.showList(); } } }
/*-------------------------------------------------- * Class AnchorPtList * * List to query for an anchor point *-------------------------------------------------*/ class AnchorPtList extends List implements CommandListener { private Text midlet; public AnchorPtList(String title, int listType, Text midlet) { // Call list constrUCtor super(title, listType);
/*-------------------------------------------------- * Commands to set anchor point *-------------------------------------------------*/ public void commandAction(Command c, Displayable s) { switch (getSelectedIndex()) { case 0: midlet.setAnchorPoint(Graphics.TOP Graphics.LEFT); break;
case 1: midlet.setAnchorPoint(Graphics.TOP Graphics.HCENTER); break; case 2: midlet.setAnchorPoint(Graphics.TOP Graphics.RIGHT); break;
case 3: midlet.setAnchorPoint(Graphics.BASELINE Graphics.LEFT); break;
case 4: midlet.setAnchorPoint(Graphics.BASELINE Graphics.HCENTER); break;
case 5: midlet.setAnchorPoint(Graphics.BASELINE Graphics.RIGHT); break;
case 6: midlet.setAnchorPoint(Graphics.BOTTOM Graphics.LEFT); break;
case 7: midlet.setAnchorPoint(Graphics.BOTTOM Graphics.HCENTER); break;
case 8: midlet.setAnchorPoint(Graphics.BOTTOM Graphics.RIGHT); break; default: midlet.setAnchorPoint(Graphics.BASELINE Graphics.HCENTER); }