Java: Tạo văn bản (Text)

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Cũng giống như các hình dạng khác nhau, bạn cũng có thể tạo một nút văn bản trong JavaFX. Nút văn bản được đại diện bởi lớp có tên Text, thuộc về gói javafx.scene.text.

Lớp này chứa một số thuộc tính để tạo văn bản trong JavaFX và sửa đổi giao diện của nó. Lớp này cũng kế thừa lớp Shape thuộc về gói javafx.scene.shape.

Do đó, ngoài các thuộc tính của văn bản như phông chữ, căn lề, khoảng cách dòng, văn bản, v.v. Nó còn kế thừa các thuộc tính nút hình dạng cơ bản như: strokeFill, stroke, strokeWidth, strokeType, v.v.

Tạo nút văn bản

Vì lớp Text của gói javafx.scene.text đại diện cho nút văn bản trong JavaFX, bạn có thể tạo văn bản bằng cách khởi tạo lớp này như sau:

Text text = new Text();

Lớp Text chứa một thuộc tính có tên là văn bản kiểu chuỗi, đại diện cho văn bản sẽ được tạo.

Sau khi khởi tạo lớp Text, bạn cần đặt giá trị cho thuộc tính này bằng phương thức setText () như sau:

String text = "Hello how are you" 
Text.setText(text);

Bạn cũng có thể đặt vị trí (điểm gốc) của văn bản bằng cách chỉ định các giá trị cho các thuộc tính x và y bằng cách sử dụng các phương thức setter tương ứng của chúng, cụ thể là setX() và setY() như sau:

text.setX(50); 
text.setY(50);

Ví dụ

Chương trình sau đây là một ví dụ minh họa cách tạo một nút văn bản trong JavaFX. Lưu mã này trong một tệp có tên TextExample.java:

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene;
import javafx.stage.Stage; 
import javafx.scene.text.Text; 
         
public class TextExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text();      
      
      //Setting the text to be added. 
      text.setText("Hello how are you"); 
       
      //setting the position of the text 
      text.setX(50); 
      text.setY(50); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Sample Application"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
} 

Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau:

javac TextExample.java 
java TextExample

Khi thực thi, chương trình trên tạo một cửa sổ JavaFX hiển thị văn bản được chỉ định như sau:

Văn bản Ứng dụng Mẫu

Vị trí và Phông chữ của Văn bản

Theo mặc định, văn bản được tạo bởi lớp văn bản có phông chữ…, kích thước… và có màu đen.

Bạn có thể thay đổi kích thước phông chữ và màu sắc của văn bản 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 Font.

Lớp có tên Font của gói javafx.scene.text được sử dụng để xác định phông chữ cho văn bản. Lớp này chứa một phương thức tĩnh có tên là font().

Phương thức này chấp nhận bốn tham số cụ thể là:

  • family - Có kiểu String và đại diện cho họ phông chữ mà chúng ta muốn áp dụng cho văn bản.

  • weight - Thuộc tính này đại diện cho độ đậm của chữ. Nó chấp nhận 9 giá trị, đó là - FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture - Thuộc tính này đại diện cho tư thế phông chữ (thông thường hoặc nghiêng). Nó chấp nhận hai giá trị FontPosture.REGULAR và FontPosture.ITALIC.

  • size - Thuộc tính này có kiểu double và nó đại diện cho kích thước của phông chữ.

Bạn có thể đặt phông chữ cho văn bản bằng cách sử dụng phương thức sau:

text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));

Ví dụ

Chương trình sau đây là một ví dụ minh họa cách đặt phông chữ của nút văn bản trong JavaFX. Ở đây, chúng ta đang đặt phông chữ thành Verdana, weight thành đậm, posture thành bình thường và kích thước thành 20.

Lưu mã này trong một tệp có tên TextFontExample.java:

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
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 TextFontExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text(); 
        
      //Setting font to the text 
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20)); 
       
      //setting the position of the text
      text.setX(50); 
      text.setY(130);          
      
      //Setting the text to be added. 
      text.setText("Hi how are you"); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Setting Font to the text"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}      

Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau:

javac TextFontExample.java 
java TextFontExample 

Khi thực thi, chương trình trên tạo một cửa sổ JavaFX hiển thị văn bản với phông chữ được chỉ định như sau:

Đặt Phông chữ thành Văn bản

Nét và màu sắc

Lớp Text cũng kế thừa lớp Shape của gói. Do đó, bạn có thể sử dụng javafx.scene.shape mà bạn có thể đặt nét và màu cho nút văn bản.

Bạn có thể đặt màu cho văn bản bằng phương thức setFill() của lớp shape (được kế thừa) như sau:

text.setFill(Color.BEIGE); 

Tương tự, bạn có thể đặt màu nét của văn bản bằng phương thức setStroke(). Trong khi chiều rộng của nét có thể được đặt bằng phương thức setStrokeWidth() như sau:

//Setting the color 
text.setFill(Color.BROWN); 
        
//Setting the Stroke  
text.setStrokeWidth(2); 
       
//Setting the stroke color 
text.setStroke(Color.BLUE); 

Ví dụ

Chương trình sau đây là một ví dụ minh họa cách đặt màu, nét vẽ Width và strokeColor, của nút văn bản. Trong đoạn mã này, ta đang thiết lập màu nét vẽ thành - xanh lam, màu văn bản thành - nâu và chiều rộng nét vẽ thành - 2.

Lưu mã này trong một tệp có tên StrokeExample.java:

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 StrokeExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text(); 
       
      //Setting font to the text 
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 50)); 
       
      //setting the position of the text  
      text.setX(50); 
      text.setY(130);     
       
      //Setting the color 
      text.setFill(Color.BROWN); 
       
      //Setting the Stroke  
      text.setStrokeWidth(2); 
      
      // Setting the stroke color
      text.setStroke(Color.BLUE);        
      
      //Setting the text to be added. 
      text.setText("Hi how are you"); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Setting font to the text"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}      

Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau:

javac StrokeExample.java 
java StrokeExample 

Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX hiển thị văn bản với các thuộc tính nét và màu được chỉ định như sau:

Ví dụ về nét văn bản

Áp dụng trang trí cho văn bản

Bạn cũng có thể áp dụng các cách trang trí như gạch giữa; trong trường hợp này sẽ có một đường xuyển qua văn bản. Bạn có thể gạch dưới văn bản bằng các phương thức của lớp Text.

Bạn có thể gạch ngang văn bản bằng phương thức setStrikethrough(). Điều này chấp nhận một giá trị Boolean, truyền giá trị true cho phương thức này sẽ tạo đường gạch giữa văn bản:

//Striking through the text 
text1.setStrikethrough(true); 

Theo cách tương tự, bạn có thể gạch dưới văn bản bằng cách truyền giá trị true cho phương thức setUnderLine() như sau:

//underlining the text     
text2.setUnderline(true);

Ví dụ

Các chương trình sau đây là một ví dụ chứng minh việc làm thế nào để áp dụng trang trí như gạch dưới hoặc gạch giữa một văn bản. Lưu mã này trong một tệp có tên DecectorsExample.java:

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
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 DecorationsExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text_Example object 
      Text text1 = new Text("Hi how are you");       
      
      //Setting font to the text 
      text1.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));
      
      //setting the position of the text 
      text1.setX(50); 
      text1.setY(75);     
      
      //Striking through the text 
      text1.setStrikethrough(true); 
       
      //Creating a Text_Example object  
      Text text2 = new Text("Welcome to Tutorialspoint");     
      
      //Setting font to the text 
      text2.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));
      
      //setting the position of the text 
      text2.setX(50); 
      text2.setY(150);      
      
      //underlining the text     
      text2.setUnderline(true);  
         
      //Creating a Group object  
      Group root = new Group(text1, text2);   
               
      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Decorations Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Biên dịch và thực thi tệp Java đã lưu từ dấu nhắc lệnh bằng các lệnh sau:

javac DecorationsExample.java 
java DecorationsExample

Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX.

» Tiếp: Hiệu ứng chỉnh màu (ColorAdjust)
« Trước: Thao tác Subtraction
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!