关于j2me中Font的用法

来源:互联网 发布:java常见项目 知乎 编辑:程序博客网 时间:2024/04/30 18:35
 由于设备的限制,手机中支持的字体类型很有限。我们只能使用手机支持的字体来构造Font类对象。 同其他类不一样,我们不能通过 new Font() 这样的语句,来创建一个Font实例,因为Font类没有构造函数。那么如何获得一个特定的字体呢?我们可以通过如下方法来获得,请看代码:


Font font;
font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL);


public void paint(Graphics g) {
 String str = "Welcome the Java world!";
 g.setFont(font);
 g.drawString(str, screenX / 2, MENU_Y, Graphics.TOP | Graphics.HCENTER);
}


函数getFont(int face, int style, int size)中:


1) face 为字体的外观,J2ME中提供了如下几种face:
   Font.FACE_SYSTEN
   Font.FACE_MONOSPACE
   Font.FACE_PROPORTIONAL


2) style 为字体的风格,J2ME中提供了如下几种style:
   Font.STYLE_PLAIN
   Font.STYLE_BOLD
   Font.STYLE_ITALIC
   Font.STYLE_UNDERLINED


其中,后三种可以混合使用,例:粗体加斜体的写法
Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD|Font.STYLE_ITALIC, Font.SIZE_SMALL);


3) size 为字体的大小,J2ME中提供了如下几种size:
   Font.SIZE_SMALL
   Font.SIZE_MEDIUM
   Font.SIZE_LARGE


Font 类一般都是在Canvas类中使用,通过g.setFont(font)这样的语句来设置字体。在高级UI中,
一般是用不着Font类的。但有个例外,在MIDP2.0中,List类可以设置每行的字体格式。方法是:
list.setFont(0,font);//第一行的字体为font


-------------------------------------------------------------


J2ME中没有color类,那么我们用什么方法来表达颜色呢?
在J2ME中,颜色的表达方式有两种:
public void paint(Graphics g) {
 //方法一,16进制表达方式
 g.setColor(0xffffff);
 //方法二,RGB表达方式
 g.setColor(255, 255, 255);
}


所以,一般颜色的设置也是在Canvas类中,通过Graphics的setColor()来设置要显示出的颜色。