FontTestlet.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:4k
源码类别:

J2ME

开发平台:

Java

  1. package fonttest;
  2. import javax.microedition.lcdui.*;
  3. import javax.microedition.midlet.*;
  4. /**
  5.  * FontTestlet is simple MIDlet which attempts to display
  6.  * text in all of the MIDP's different fonts.
  7.  */
  8. public class FontTestlet extends MIDlet implements CommandListener {
  9.     private Display     myDisplay;
  10.     private FontCanvas  myCanvas;
  11.     private int currentFace = Font.FACE_SYSTEM;
  12.     private Command monospaceCommand 
  13. = new Command("monospace", Command.ITEM, 1);
  14.     private Command proportionalCommand 
  15. = new Command("proportional", Command.ITEM, 1);
  16.     private Command systemCommand = new Command("system", Command.ITEM, 1);
  17.   
  18.     /**
  19.      * FontTestlet - default constructor
  20.      */
  21.     public FontTestlet() {
  22. super();
  23. // Set up the user interface
  24. myDisplay = Display.getDisplay(this);
  25. myCanvas  = new FontCanvas(this);  // pointer to myself
  26. myCanvas.setCommandListener(this);
  27. myCanvas.addCommand(monospaceCommand);
  28. myCanvas.addCommand(proportionalCommand);
  29.     }
  30.     /**
  31.      * initApp()
  32.      */
  33.     public void init() throws MIDletStateChangeException {
  34.     }
  35.     /**
  36.      * startApp()
  37.      */
  38.     public void startApp() throws MIDletStateChangeException {
  39. myDisplay.setCurrent(myCanvas);
  40.     }
  41.   
  42.     /**
  43.      * pauseApp()
  44.      */
  45.     public void pauseApp() {
  46. // System.out.println("pauseApp()");
  47.     }
  48.   
  49.     /**
  50.      * destryApp()
  51.      *
  52.      * This is important.  It closes the app's RecordStore
  53.      * @param cond true if this is an unconditional destroy
  54.      *             false if it is not
  55.      *             currently ignored and treated as true
  56.      */
  57.     public void destroyApp(boolean cond) {
  58. myDisplay.setCurrent((Displayable)null);
  59. myCanvas.destroy();
  60.     }
  61.     /**
  62.      * draw some stuff to the graphics context
  63.      */
  64.     public void paint(Graphics g) {
  65. String title;
  66. int height = 0;
  67. g.setColor(0x00ffffff);
  68. g.fillRect(0, 0, myCanvas.getWidth(), myCanvas.getHeight());
  69. g.setColor(0x00000000);
  70. switch (currentFace) {
  71. case Font.FACE_SYSTEM:
  72.     title = "System";
  73.     break;
  74. case Font.FACE_PROPORTIONAL:
  75.     title = "Proportional";
  76.     break;
  77. case Font.FACE_MONOSPACE:
  78.     title = "Monospaced";
  79.     break;
  80. default:
  81.     title = "unknown";
  82.     break;
  83. }
  84. g.drawString(title, 0, 0, Graphics.TOP|Graphics.LEFT);
  85. height += g.getFont().getHeight();
  86. g.setFont(Font.getFont(currentFace, 
  87.        Font.STYLE_PLAIN, 
  88.        Font.SIZE_LARGE));
  89. g.drawString("Regular plain", 0, height, Graphics.TOP|Graphics.LEFT);
  90. height += g.getFont().getHeight();
  91. g.setFont(Font.getFont(currentFace, 
  92.        Font.STYLE_ITALIC, 
  93.        Font.SIZE_LARGE));
  94. g.drawString("Regular ital", 0, height, Graphics.TOP|Graphics.LEFT);
  95. height += g.getFont().getHeight();
  96. g.setFont(Font.getFont(currentFace, 
  97.        Font.STYLE_BOLD, 
  98.        Font.SIZE_LARGE));
  99. g.drawString("Bold plain", 0, height, Graphics.TOP|Graphics.LEFT);
  100. height += g.getFont().getHeight();
  101. g.setFont(Font.getFont(currentFace, 
  102.        Font.STYLE_BOLD|Font.STYLE_ITALIC, 
  103.        Font.SIZE_LARGE));
  104. g.drawString("Bold ital", 0, height, Graphics.TOP|Graphics.LEFT);
  105. height += g.getFont().getHeight();
  106. g.setFont(Font.getFont(currentFace, 
  107.        Font.STYLE_UNDERLINED|Font.STYLE_ITALIC, 
  108.        Font.SIZE_LARGE));
  109. g.drawString("underline  ital", 0, height, Graphics.TOP|Graphics.LEFT);
  110. height += g.getFont().getHeight();
  111. g.setFont(Font.getFont(currentFace, 
  112.        Font.STYLE_UNDERLINED|Font.STYLE_ITALIC|Font.STYLE_BOLD, 
  113.        Font.SIZE_LARGE));
  114. g.drawString("underline bold ital", 0, height, Graphics.TOP|Graphics.LEFT);
  115.     }
  116.     Command getCurrentCommand() {
  117. switch (currentFace) {
  118. case Font.FACE_MONOSPACE:
  119.     return monospaceCommand;
  120. case Font.FACE_PROPORTIONAL:
  121.     return proportionalCommand;
  122. case Font.FACE_SYSTEM:
  123. default:
  124.     return systemCommand;
  125. }
  126.     }
  127.     public void commandAction(Command cmd, Displayable disp) {
  128. myCanvas.addCommand(getCurrentCommand());
  129. if (cmd == monospaceCommand) {
  130.     myCanvas.removeCommand(monospaceCommand);
  131.     currentFace = Font.FACE_MONOSPACE;
  132. } else if (cmd == proportionalCommand) {
  133.     myCanvas.removeCommand(proportionalCommand);
  134.     currentFace = Font.FACE_PROPORTIONAL;
  135. } else if (cmd == systemCommand) {
  136.     myCanvas.removeCommand(systemCommand);
  137.     currentFace = Font.FACE_SYSTEM;
  138. }
  139. myCanvas.repaint();
  140.     }
  141. }