AWT Font类

1 什么是Java AWT Font

Font 类声明了字体,这些字体用于以可见的方式呈现文本。

2 Java AWT Font的语法

public class Font
   extends Object
      implements Serializable

3 Java AWT Font的构造方法

构造方法 描述
protected Font() 从指定的字体创建新字体。
Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) 从指定的字体创建新字体。
Font(String name, int style, int size) 从指定的字体创建新字体。

4 Java AWT Font的方法

方法 描述
boolean canDisplay(char c) 检查此 Font 是否具有指定字符的字形。
boolean canDisplay(int codePoint) 检查此 Font 是否具有指定字符的字形。
int canDisplayUpTo(char[] text, int start, int limit) 指示此 Font 是否可以显示指定文本中从 start 开始到 limit 结束的字符。
int canDisplayUpTo(CharacterIterator iter, int start, int limit) 指示此 Font 是否可以显示由 iter 指定的从 start 开始到 limit 结束的文本。
int canDisplayUpTo(String str) 指示此 Font 是否可以显示指定的字符串。
static Font createFont(int fontFormat, File fontFile) 使用指定的字体类型和指定的字体文件返回一个新的 Font。
static Font createFont(int fontFormat, InputStream fontStream) 使用指定的字体类型和输入数据返回一个新的 Font。
GlyphVector createGlyphVector(FontRenderContext frc, char[] chars) 通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。
GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci) 通过基于此 Font 中的 Unicode cmap 将指定字符一对一映射到字形来创建 GlyphVector。
GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes) 通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。
GlyphVector createGlyphVector(FontRenderContext frc, String str) 通过基于此 Font 中的 Unicode cmap 将字符一对一映射到字形来创建 GlyphVector。
static Font decode(String str) 返回 str 参数描述的字体。
Font deriveFont(AffineTransform trans) 通过复制当前的 Font 对象并对其应用新的变换来创建一个新的 Font 对象。
Font deriveFont(float size) 通过复制当前 Font 对象并对其应用新大小来创建一个新的 Font 对象。
Font deriveFont(int style) 通过复制当前 Font 对象并对其应用新样式来创建新的 Font 对象。
Font deriveFont(int style, AffineTransform trans) 通过复制此 Font 对象并应用新样式和变换来创建新的 Font 对象。
Font deriveFont(int style, float size) 通过复制这个 Font 对象并应用新的样式和大小来创建一个新的 Font 对象。
Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) 通过复制当前 Font 对象并向其应用一组新的字体属性来创建一个新的 Font 对象。
boolean equals(Object obj) 将此 Font 对象与指定的 Object 进行比较。
protected void finalize() 处置本机 Font 对象。
Map<TextAttribute,?> getAttributes() 返回此 Font 中可用的字体属性映射。
AttributedCharacterIterator.Attribute[] getAvailableAttributes() 返回此 Font 支持的所有属性的键。
byte getBaselineFor(char c) 返回适合显示此字符的基线。
String getFamily() 返回此 Font 的系列名称。
String getFamily(Locale l) 返回此 Font 的系列名称,已针对指定的语言环境进行了本地化。
static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) 返回适合属性的字体。
static Font getFont(String nm) 从系统属性列表中返回一个 Font 对象。
static Font getFont(String nm, Font font) 从系统属性列表中获取指定的 Font。
String getFontName() 返回此 Font 的字体名称。
String getFontName(Locale l) 返回 Font 的字体名称,针对指定的语言环境进行了本地化。
float getItalicAngle() 返回此 Font 的斜体角度。
LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc) 返回使用指定参数创建的 LineMetrics 对象。
LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) 返回使用指定参数创建的 LineMetrics 对象。
LineMetrics getLineMetrics(String str, FontRenderContext frc) 返回使用指定的 String 和 FontRenderContext 创建的 LineMetrics 对象。
LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc) 返回使用指定参数创建的 LineMetrics 对象。
Rectangle2D getMaxCharBounds(FontRenderContext frc) 返回具有指定 FontRenderContext 中定义的最大边界的字符的边界。
int getMissingGlyphCode() 返回当此 Font 没有指定 unicode 代码点的字形时使用的字形代码。
String getName() 返回此 Font 的逻辑名称。
int getNumGlyphs() 返回此 Font 中的字形数量。
java.awt.peer.FontPeer getPeer() 已弃用。字体渲染现在独立于平台。
String getPSName() 返回此 Font 的 postscript 名称。
int getSize() 返回此 Font 的磅值,四舍五入为整数。
float getSize2D() 以浮点值形式返回此 Font 的磅值。
Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc) 返回指定 FontRenderContext 中指定字符数组的逻辑边界。
Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc) 返回在指定 FontRenderContext 中指定 CharacterIterator 中索引的字符的逻辑边界。
Rectangle2D getStringBounds(String str, FontRenderContext frc) 返回指定 FontRenderContext 中指定 String 的逻辑边界。
Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc) 返回指定 FontRenderContext 中指定 String 的逻辑边界。
int getStyle() 返回此 Font 的样式。
AffineTransform getTransform() 返回与此字体关联的转换的副本。
int hashCode() 返回此字体的哈希码。
boolean hasLayoutAttributes() 如果此 Font 包含需要额外布局处理的属性,则返回 true。
boolean hasUniformLineMetrics() 检查此 Font 是否具有统一的线度量。
boolean isBold() 指示此 Font 对象的样式是否为 BOLD。
boolean isItalic() 指示此 Font 对象的样式是否为 ITALIC。
boolean isPlain() 指示此 Font 对象的样式是否为 PLAIN。
boolean isTransformed() 指示此 Font 对象是否具有除 Size 属性之外影响其大小的变换。
GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags) 返回一个新的 GlyphVector 对象,如果可能,执行文本的完整布局。
String toString() 将此 Font 对象转换为 String 表示形式。

5 Java AWT Font的例子

让我们看一个简单的Java AWT Font类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("一点教程网:Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Graphics2D g2 = (Graphics2D)g;        
      Font plainFont = new Font("Serif", Font.PLAIN, 24);        
      g2.setFont(plainFont);
      g2.drawString("Welcome to yiidian.com", 50, 70); 
      Font italicFont = new Font("Serif", Font.ITALIC, 24);        
      g2.setFont(italicFont);
      g2.drawString("Welcome to yiidian.com", 50, 120); 
      Font boldFont = new Font("Serif", Font.BOLD, 24);        
      g2.setFont(boldFont);
      g2.drawString("Welcome to yiidian.com", 50, 170); 
      Font boldItalicFont = new Font("Serif", Font.BOLD+Font.ITALIC, 24);        
      g2.setFont(boldItalicFont);
      g2.drawString("Welcome to yiidian.com", 50, 220); 
   }
}

输出结果为:

热门文章

优秀文章