Java绘制字体的所有字形

时间:2012-05-18 05:47:45

标签: java fonts

问题:

给定一个Font对象,如何绘制所有字体的字形/符号/字符?

我知道以下内容:

我知道如何从文件创建一个Font对象。

我知道要使用g.setFont(...); // g是Graphics2D

我知道使用g.drawString(...); // g是Graphics2D

但是,我不想只绘制A-Z,a-z,0-9个字符。我想绘制字体的所有字形。有没有办法做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:4)

怎么样:

final Font f = new Font(...);
for (char c = 0x0000; c <= 0xFFFF; c++)
{
  if (f.canDisplay(c))
  {
    // draw it ...
  }
}

请参阅Font.canDisplay()

  

<强> public boolean canDisplay(int codePoint)

     

检查此Font是否具有指定字符的字形。

     

<强>参数:

     

codePoint - 需要字形的字符(Unicode代码点)。

     

<强>返回:

     

true如果此Font有字符的字形;否则false

     

<强>抛出:

     

IllegalArgumentException - 如果代码点不是有效的Unicode代码点。

     

<强>时间:

   1.5
     

另见:

     

Character.isValidCodePoint(int)