JavaFX - ข้อความ

เช่นเดียวกับรูปร่างต่างๆคุณสามารถสร้างโหนดข้อความใน JavaFX ได้ โหนดข้อความแสดงโดยคลาสที่ชื่อTextซึ่งเป็นของแพ็คเกจ javafx.scene.text.

คลาสนี้มีคุณสมบัติหลายอย่างเพื่อสร้างข้อความใน JavaFX และแก้ไขลักษณะที่ปรากฏ คลาสนี้ยังสืบทอดคลาส Shape ซึ่งเป็นของแพ็กเกจjavafx.scene.shape.

ดังนั้นนอกจากคุณสมบัติของข้อความเช่นแบบอักษรการจัดตำแหน่งระยะห่างระหว่างบรรทัดข้อความ ฯลฯ แล้วยังสืบทอดคุณสมบัติโหนดรูปร่างพื้นฐานเช่น strokeFill, stroke, strokeWidth, strokeType, เป็นต้น

การสร้างโหนดข้อความ

ตั้งแต่คลาส Text ของแพ็กเกจ javafx.scene.text แทนโหนดข้อความใน JavaFX คุณสามารถสร้างข้อความโดยสร้างอินสแตนซ์คลาสนี้ดังนี้ -

Text text = new Text();

ข้อความคลาสประกอบด้วยคุณสมบัติที่ชื่อ text ของประเภทสตริงซึ่งแสดงถึงข้อความที่จะสร้าง

หลังจากสร้างอินสแตนซ์คลาส Text แล้วคุณต้องตั้งค่าให้กับคุณสมบัตินี้โดยใช้ setText() วิธีการดังแสดงด้านล่าง

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

คุณยังสามารถกำหนดตำแหน่ง (จุดเริ่มต้น) ของข้อความโดยระบุค่าให้กับคุณสมบัติ x และ y โดยใช้วิธีการตั้งค่าตามลำดับคือ setX() และ setY() ดังแสดงในบล็อกรหัสต่อไปนี้ -

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

ตัวอย่าง

โปรแกรมต่อไปนี้เป็นตัวอย่างที่สาธิตวิธีการสร้างโหนดข้อความใน JavaFX บันทึกรหัสนี้ในไฟล์ที่มีชื่อ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); 
   } 
}

คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้

javac TextExample.java 
java TextExample

ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX โดยแสดงข้อความที่ระบุดังนี้ -

ตำแหน่งและแบบอักษรของข้อความ

โดยค่าเริ่มต้นข้อความที่สร้างโดยคลาสข้อความจะเป็นแบบอักษร ... ขนาด ... และเป็นสีดำ

คุณสามารถเปลี่ยนขนาดตัวอักษรและสีของข้อความโดยใช้ไฟล์ setFont()วิธี. วิธีนี้ยอมรับวัตถุของFont ชั้นเรียน

ชั้นเรียนชื่อ Font ของแพ็คเกจ javafx.scene.textใช้เพื่อกำหนดฟอนต์สำหรับข้อความ คลาสนี้มีเมธอดแบบคงที่ชื่อfont().

วิธีนี้ยอมรับสี่พารามิเตอร์คือ -

  • family - เป็นประเภท String และแสดงถึงตระกูลของแบบอักษรที่เราต้องการใช้กับข้อความ

  • weight- คุณสมบัตินี้แสดงถึงน้ำหนักของแบบอักษร ยอมรับ 9 ค่าซึ่ง ได้แก่ -FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- คุณสมบัตินี้แสดงถึงท่าทางแบบอักษร (ปกติหรือตัวเอียง) ยอมรับสองค่าFontPosture.REGULAR และ FontPosture.ITALIC.

  • size - คุณสมบัตินี้เป็นประเภท double และแสดงถึงขนาดของแบบอักษร

คุณสามารถตั้งค่าแบบอักษรเป็นข้อความโดยใช้วิธีการต่อไปนี้ -

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

ตัวอย่าง

โปรแกรมต่อไปนี้เป็นตัวอย่างที่สาธิตวิธีการตั้งค่าฟอนต์ของโหนดข้อความใน JavaFX ที่นี่เรากำลังตั้งค่าแบบอักษรเป็น Verdana น้ำหนักเป็นตัวหนาท่าทางเป็นปกติและขนาด 20

บันทึกรหัสนี้ในไฟล์ที่มีชื่อ 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); 
   } 
}

คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้

javac TextFontExample.java 
java TextFontExample

ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX โดยแสดงข้อความพร้อมแบบอักษรที่ระบุดังนี้ -

โรคหลอดเลือดสมองและสี

คลาส Text ยังสืบทอดคลาส Shape ของแพ็กเกจ ดังนั้นคุณสามารถใช้javafx.scene.shape ซึ่งคุณสามารถกำหนดจังหวะและสีให้กับโหนดข้อความได้เช่นกัน

คุณสามารถกำหนดสีให้กับข้อความโดยใช้ไฟล์ setFill() วิธีการของคลาสรูปร่าง (สืบทอด) ดังนี้ -

text.setFill(Color.BEIGE);

ในทำนองเดียวกันคุณสามารถกำหนดสีเส้นขีดของข้อความโดยใช้วิธีการ setStroke(). ในขณะที่สามารถกำหนดความกว้างของเส้นโครงร่างได้โดยใช้วิธีsetStrokeWidth() ดังต่อไปนี้ -

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

ตัวอย่าง

โปรแกรมต่อไปนี้เป็นตัวอย่างที่สาธิตวิธีการตั้งค่าสี strokeWidth และ strokeColor ของโหนดข้อความ ในรหัสนี้เรากำลังตั้งค่าสีเส้นขีดเป็น - สีน้ำเงิน, สีข้อความเป็น - สีน้ำตาลและความกว้างของเส้นขีดเป็น - 2

บันทึกรหัสนี้ในไฟล์ที่มีชื่อ 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); 
   } 
}

คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้

javac StrokeExample.java 
java StrokeExample

ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX ที่แสดงข้อความที่มีคุณลักษณะเส้นขีดและสีที่ระบุดังนี้ -

การใช้การตกแต่งกับข้อความ

คุณยังสามารถใช้การตกแต่งเช่นการตีผ่าน ในกรณีนี้บรรทัดจะถูกส่งผ่านข้อความ คุณสามารถขีดเส้นใต้ข้อความโดยใช้วิธีการของไฟล์Text ชั้นเรียน

คุณสามารถขีดฆ่าข้อความโดยใช้วิธีการ setStrikethrough(). สิ่งนี้ยอมรับค่าบูลีนส่งผ่านค่าtrue วิธีนี้เพื่อขีดฆ่าข้อความตามที่แสดงในกล่องรหัสต่อไปนี้ -

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

ในทำนองเดียวกันคุณสามารถขีดเส้นใต้ข้อความโดยการส่งผ่านค่า true วิธีการ setUnderLine() ดังต่อไปนี้ -

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

ตัวอย่าง

โปรแกรมต่อไปนี้เป็นตัวอย่างการสาธิตวิธีการใช้งานตกแต่งเช่น underline หรือ strike throughเป็นข้อความ บันทึกรหัสนี้ในไฟล์ที่มีชื่อDecorationsExample.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); 
   } 
}

คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้

javac DecorationsExample.java 
java DecorationsExample

ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX ดังที่แสดงด้านล่าง -