How to use a different font in J2ME

Java programming topics
Post Reply
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

How to use a different font in J2ME

Post by Neo » Wed Mar 24, 2010 12:33 pm

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.

Code: Select all

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();
    }
    
}
Post Reply

Return to “Java Programming”