Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Font và FontMetrics trong Java là gì?


A Phông chữ lớp được sử dụng để đặt phông chữ màn hình và nó ánh xạ các ký tự của ngôn ngữ thành các ký hiệu tương ứng trong khi FontMetrics lớp định nghĩa một đối tượng số liệu phông chữ, gói thông tin về cách hiển thị một phông chữ cụ thể trên một màn hình cụ thể.

Phông chữ

A Phông chữ lớp có thể được sử dụng để tạo một phiên bản của Đối tượng phông chữ để đặt phông chữ cho văn bản vẽ, nhãn, trường văn bản, nút, v.v. và nó có thể được chỉ định bằng tên, kiểu và kích thước.

Các phông chữ có họ, tên logic và tên mặt

  • họ: Đây là tên chung của phông chữ, chẳng hạn như Courier.
  • tên lôgic :Nó chỉ định một loại phông chữ, chẳng hạn như Monospaced.
  • tên khuôn mặt :Nó chỉ định một phông chữ cụ thể, chẳng hạn như Courier Italic.

Ví dụ

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);
   }
}

Đầu ra

Sự khác biệt giữa Font và FontMetrics trong Java là gì?

FontMetrics

FontMetrics lớp được sử dụng để trả về các tham số cụ thể cho một Phông chữ cụ thể vật. Đối tượng của FontMetrics lớp được tạo bằng cách sử dụng getFontMetrics () phương pháp. Các phương pháp của FontMetrics lớp có thể cung cấp quyền truy cập vào thông tin chi tiết về việc triển khai Phông chữ vật. Các phương thức bytesWidth (), charWidth (), charsWidth (), getWidth (), stringWidth () được sử dụng để xác định chiều rộng của một đối tượng văn bản tính bằng pixel. Các phương pháp này rất cần thiết để xác định vị trí ngang của văn bản trên màn hình.

Ví dụ

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);
   }
}

Đầu ra

Sự khác biệt giữa Font và FontMetrics trong Java là gì?