Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách đặt font cho text node trong JavaFX


Trong JavaFX, nút văn bản được biểu diễn bởi lớp javafx.scene.text.Text. Mặc định, văn bản tạo bởi JavaFX sẽ như sau:

Cách đặt font cho text node trong JavaFX

Đặt font mong muốn cho text node

Bạn có thể đặt font mong muốn cho text node trong JavaFX bằng phương thức setFont(). Phương thức này chấp nhận một đối tượng của lớp javafx.scene.text.Font.

Lớp Font đại diện cho các font trong JavaFX, lớp này cung cấp một số biến thể của phương thức font() như sau:

font(double size) 
font(String family) 
font(String family, double size) 
font(String family, FontPosture posture, double size) 
font(String family, FontWeight weight, double size) 
font(String family, FontWeight weight, FontPosture posture, double size)

Trong đó:

  • size (double) đại diện cho kích thước font.
  • family (string) đại diện cho họ font muốn áp dụng cho văn bản. Bạn có thể lấy tên các họ font đã cài đặt bằng phương thức getFamilies().
  • weight đại diện cho độ đậm của font (một trong các hằng số của Enum FontWeight: BLACK, BOLD, EXTRA_BOLD, EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN).
  • posture đại diện cho dáng font (một trong các hằng số của Enum FontPosture: REGULAR, ITALIC).

Tất cả các phương thức này đều static và trả về đối tượng Font. Do đó, để đặt font cho text node:

  • Khởi tạo lớp Text.
  • Thiết lập các thuộc tính cơ bản như vị trí và chuỗi văn bản.
  • Tạo đối tượng Font bằng một trong các phương thức font().
  • Đặt font đã tạo cho text bằng phương thức setFont().
  • Thêm nút đã tạo vào đối tượng Group.

Ví dụ

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.InputStream; 
import java.util.Scanner; 
import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontPosture; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
public class SettingFont extends Application { 
  public void start(Stage stage) throws FileNotFoundException { 
    // Đọc nội dung file văn bản
    InputStream inputStream = new FileInputStream("D:\\sample.txt"); 
    Scanner sc = new Scanner(inputStream); 
    StringBuffer sb = new StringBuffer(); 
    while(sc.hasNext()) { 
      sb.append(" " + sc.nextLine() + "\n"); 
    } 
    String str = sb.toString(); 
    // Tạo đối tượng Text
    Text text = new Text(); 
    // Thiết lập thuộc tính cơ bản
    text.setText(str); 
    text.setX(10.0); 
    text.setY(25.0); 
    text.setWrappingWidth(580); 
    // Tạo đối tượng Font
    String font_name = Font.getFamilies().get(25); 
    System.out.println("Font Name:" + font_name); 
    int size = 25; 
    Font font = Font.font(font_name, FontWeight.BOLD, FontPosture.REGULAR, size); 
    // Đặt font cho text
    text.setFont(font); 
    // Thiết lập Stage
    Group root = new Group(text); 
    Scene scene = new Scene(root, 595, 300, Color.BEIGE); 
    stage.setTitle("Displaying Text"); 
    stage.setScene(scene); 
    stage.show(); 
  } 
  public static void main(String args[]){ 
    launch(args); 
  } 
}

sample.txt

Giả sử nội dung file sample.txt như sau:

JavaFX is a Java library used to build Rich Internet Applications. The applications written using this library can run consistently across multiple platforms. The applications developed using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc.. To develop GUI Applications using Java programming language, the programmers rely on libraries such as Advanced Windowing Tool kit and Swing. After the advent of JavaFX, these Java programmers can now develop GUI applications effectively with rich content.

Kết quả

Font Name: Brush Script MT

Nó cũng tạo ra cửa sổ sau:

Cách đặt font cho text node trong JavaFX