Java中的Font和FontMetrics有什麼區別?


Font 類用於設定螢幕字型,它將語言字元對映到其各自的字形,而 FontMetrics 類定義一個字型度量物件,該物件封裝了特定字型在特定螢幕上渲染的資訊。

Font

Font 類可用於建立 Font 物件 的例項,以設定繪製文字、標籤、文字欄位、按鈕等的字型,並且可以透過其名稱、樣式和大小來指定。

字型具有族名、邏輯名和麵名

  • 族名:它是字型的通用名稱,例如 Courier。
  • 邏輯名:它指定字型的類別,例如 Monospaced。
  • 面名:它指定具體的字型,例如 Courier Italic。

示例

import java.awt.*;
import javax.swing.*;
public class FontTest extends JPanel {
   public void paint(Graphics g) {
      g.setFont(new Font("TimesRoman", Font.BOLD, 15));
      g.setColor(Color.blue);
      g.drawString("Welcome to Tutorials Point", 10, 20);
   }
   public static void main(String args[]) {
      JFrame test = new JFrame();
      test.getContentPane().add(new FontTest());
      test.setTitle("Font Test");
      test.setSize(350, 275);
      test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      test.setLocationRelativeTo(null);
      test.setVisible(true);
   }
}

輸出

FontMetrics

FontMetrics 類用於返回特定 Font 物件的特定引數。FontMetrics 類的物件是使用 getFontMetrics() 方法建立的。FontMetrics 類的函式可以訪問 Font 物件實現的詳細資訊。bytesWidth()、charWidth()、charsWidth()、getWidth()stringWidth() 方法用於確定文字物件的寬度(以畫素為單位)。這些方法對於確定螢幕上文字的水平位置至關重要。

示例

import java.awt.*;
import javax.swing.*;
public class FontMetricsTest extends JPanel {
   public void paint(Graphics g) {
      String msg = "Tutorials Point";
      Font f = new Font("Times New Roman",Font.BOLD|Font.ITALIC, 15);
      FontMetrics fm = getFontMetrics(f);
      g.setFont(f);
      int x =(getSize().width-fm.stringWidth(msg))/2;
      System.out.println("x= "+x);
      int y = getSize().height/2;
      System.out.println("y= "+y);
      g.drawString(msg, x, y);
   }
   public static void main(String args[]){
      JFrame test = new JFrame();
      test.getContentPane().add(new FontMetricsTest());
      test.setTitle("FontMetrics Test");
      test.setSize(350, 275);
      test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      test.setLocationRelativeTo(null);
      test.setVisible(true);
   }
}

輸出

更新於:2020年2月10日

瀏覽量:1000+

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.