Java手机软件图形界面API之低级GUI组件(二)

2014-11-23 21:55:05 · 作者: · 浏览: 7
MEDIUM, LARGE Style BOLD, ITALIC, PLAIN, UNDERLINED
  例如,要指定一种中等大小的字体,可以使用Font.SIZE_MEDIUM;用Font.STYLE_ITALIC来指定倾斜字形,等等。字形属性值可以用OR(|)操作符结合;另外一些属性值不能结合。例如:下面这种属性值指定了一种常规,带下划线的字体:

STYLE_PLAIN | STYLE_UNDERLINED
  而,下面是非法的组合:

SIZE_SMALL | SIZE_MEDIUM
  下面也是非法的:

FACE_SYSTEM | FACE_MONOSPACE
  系统中的每种字体实际上都是分别实现的,所以为了取得描述字体的对象,可以用getFont( )方法--该方法有三个参数,分别对应字体的字面,大小和字形。如,下面的代码以指定的字面,大小和字形属性得到一个Font对象:

Font font = Font.getFont(FACE_SYSTEM,STYLE_PLAIN, SIZE_MEDIUM);
  如果没有相匹配的字体,系统将尽可能提供最相近的匹配-总是一个有效的字体对象。

  一旦得到一种字体,你就可以使用Font类的方法来检索这种字体的信息。如,你可以用getFace(),getSize( )和getStyle( )方法来分别检索该字体的字面,大小和字形信息。

  让我们再看一个例子:示例3中代码子类化Canvas 类。在此,绘图颜色设置为白色,并用该色画出一个矩形,然后把绘图色置为黑色。代码剩下的部分在设备屏幕上绘制系统字体,如图2所示。


图2.在设备显示屏上画出系统字体
  

示例3:使用字体

import javax.microedition.lcdui.*;
public class FontCanvas extends Canvas {
 public void paint(Graphics g) {
  g.setColor(0xffffff);
  g.fillRect(0, 0, getWidth(), getHeight( ));
  g.setColor(0x000000);
  g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,Font.SIZE_LARGE));
  g.drawString("System Font", 0, 0, g.LEFT | g.TOP);
  g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,Font.SIZE_MEDIUM));
  g.drawString("Medium Size", 0, 15, g.LEFT | g.TOP);
  g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,Font.SIZE_MEDIUM));
  g.drawString("Bold Style", 0, 30, g.LEFT | g.TOP);
  g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC,Font.SIZE_MEDIUM));
  g.drawString("Italic Style", 0, 45, g.LEFT | g.TOP);
  g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_UNDERLINED, Font.SIZE_MEDIUM));
  g.drawString("Underlined Sty