The Java tips describes methods of using different fonts in J2ME application. The Font class represents fonts and font metrics. Fonts cannot be created by applications. The setFont(Font font) method of graphic class sets the font for all subsequent text rendering operations. And there is no call to showNotify and hideNotify method on some the device. This application will help game developer to find out the exact behaviour of mobile device.

 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class FontDemo extends MIDlet {
    
    private boolean boolMotion=false;    
    private int iX=10, iY=60;
    
    Display mDisplay;
    Thread th;
    public void destroyApp(boolean unconditional){}
    
    public void pauseApp() {}
    
    public void startApp() {
        
        mDisplay = Display.getDisplay(this);
        final MyCanvas can = new MyCanvas();
        mDisplay.setCurrent(can);
        
    }
}

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyCanvas extends Canvas {
    
    Font font;
    String msg;
    public MyCanvas() {
        
        font=Font.getFont(Font.FACE_MONOSPACE,
                Font.STYLE_ITALIC, Font.SIZE_LARGE);
        msg = "Font:FACE_MONOSPACE  Font.STYLE_ITALIC  Font.SIZE_LARGE";
    }
    
    public void paint(Graphics g) {
        g.setFont(font);
        g.drawString(msg,0,10,g.TOP|g.LEFT);
        g.drawString("press NUM KEY: 1 2 or 3",0,80,g.TOP|g.LEFT);
    }
    
    void changeValue(int change) {
        switch(change) {
            case '1':
                font=Font.getFont(Font.FACE_MONOSPACE, 
                        Font.STYLE_ITALIC, Font.SIZE_LARGE) ;
                msg="Font:FACE_MONOSPACE  Font.STYLE_ITALIC "+
                        "Font.SIZE_LARGE";
                break;
            case '2':
                font=Font.getFont(Font.FACE_PROPORTIONAL, 
                        Font.STYLE_ITALIC, Font.SMALL) ;
                msg = "Font:FACE_PROPORTIONAL Font.STYLE_ITALIC "+
                      "Font.SIZE_SMALL";
                break;
            case '3':
                font=Font.getFont(Font.FACE_SYSTEM , 
                        Font.STYLE_BOLD, Font.SIZE_LARGE) ;
                msg="Font:FACE_SYSTEM  Font.STYLE_BOLD "+
                        "Font.SIZE_LARGE";
                break;
        }
    }
    
    
    //Handling keyEvents
    protected void keyPressed(int keyCode) {
        changeValue(keyCode);
        repaint();
    }
    
}

 

 

 Related Tips