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

Làm thế nào để đặt phông chữ thành nút văn bản trong JavaFX?


Trong JavaFX, nút văn bản được biểu thị bằng javafx.scene.text.Text lớp. Theo mặc định, văn bản được tạo bởi JavaFX sẽ như sau -

Làm thế nào để đặt phông chữ thành nút văn bản trong JavaFX?

Đặt phông chữ mong muốn cho nút văn bản

Bạn có thể đặt phông chữ mong muốn cho nút văn bản trong JavaFX bằng cách sử dụng setFont () phương pháp. Phương thức này chấp nhận một đối tượng của lớp javafx.scene.text.Font.

Phông chữ lớp đại diện cho các phông chữ trong JavaFX, lớp này cung cấp một số biến thể của phương thức có tên font () như hình bên dưới -

phông chữ
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)

Ở đâu,

  • kích thước (double) đại diện cho kích thước của phông chữ.

  • gia đình (string) đại diện cho họ phông chữ mà chúng ta muốn áp dụng cho văn bản. Bạn có thể lấy tên của các họ phông chữ đã cài đặt bằng cách sử dụng getFamilies () phương thức.

  • trọng lượng đại diện cho độ đậm của phông chữ (một trong những hằng số của FontWeight Enum:BLACK, BOLD, EXTRA_BOLD, EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN).

  • tư thế đại diện cho tư thế phông chữ (một trong những hằng số của FontPosture Enum:REGULAR, ITALIC).

Tất cả các phương thức này là tĩnh và trả về một đối tượng Font. Do đó, để đặt phông chữ cho nút văn bản -

  • Khởi tạo lớp Văn bản.

  • Đặt các thuộc tính cơ bản như vị trí và chuỗi văn bản, sử dụng các phương thức setter hoặc bỏ qua chúng dưới dạng đối số cho hàm tạo.

  • Tạo đối tượng Font bằng một trong các phương thức font ().

  • Đặt phông chữ đã tạo thành văn bản bằng phương thức setFont ().

  • Thêm nút đã tạo vào đối tượng Nhóm.

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 {
      //Reading the contents of a text file.
      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();
      //Creating a text object
      Text text = new Text();
      //Setting the basic properties of text
      text.setText(str);
      text.setX(10.0);
      text.setY(25.0);
      text.setWrappingWidth(580);
      //Creating the font object
      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);
      //Setting font to the text
      text.setFont(font);
      //Setting the 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ử sau đây là nội dung của tệp sample.txt -

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.

Đầu ra

Font Name: Brush Script MT

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

Làm thế nào để đặt phông chữ thành nút văn bản trong JavaFX?