Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Font และ FontMetrics ใน Java แตกต่างกันอย่างไร


A แบบอักษร คลาสใช้เพื่อตั้งค่าแบบอักษรของหน้าจอและจับคู่อักขระของภาษากับร่ายมนตร์ตามลำดับ ในขณะที่ FontMetrics class กำหนดอ็อบเจ็กต์เมตริกฟอนต์ ซึ่งสรุปข้อมูลเกี่ยวกับการแสดงฟอนต์เฉพาะบนหน้าจอเฉพาะ

แบบอักษร

แบบอักษร คลาสสามารถใช้เพื่อสร้างอินสแตนซ์ของ อ็อบเจกต์ฟอนต์ เพื่อกำหนดแบบอักษรสำหรับ การวาดข้อความ ป้ายกำกับ ช่องข้อความ ปุ่ม ฯลฯ และสามารถระบุได้ด้วย ชื่อ ลักษณะ และขนาด

แบบอักษรมีชื่อสกุล ชื่อตรรกะ และชื่อใบหน้า

  • นามสกุล: เป็นชื่อทั่วไปของฟอนต์ เช่น 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);
   }
}

ผลลัพธ์

Font และ FontMetrics ใน Java แตกต่างกันอย่างไร

FontMetrics

FontMetrics คลาสใช้เพื่อส่งคืนพารามิเตอร์เฉพาะสำหรับ แบบอักษร วัตถุ. วัตถุของ FontMetrics คลาสถูกสร้างขึ้นโดยใช้ getFontMetrics() กระบวนการ. วิธีการของ FontMetrics คลาสสามารถให้การเข้าถึงรายละเอียดของการใช้งาน แบบอักษร วัตถุ. วิธีการ 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);
   }
}

ผลลัพธ์

Font และ FontMetrics ใน Java แตกต่างกันอย่างไร