JavaFX - Teks

Sama seperti berbagai bentuk, Anda juga dapat membuat simpul teks di JavaFX. Node teks diwakili oleh kelas bernamaText, yang termasuk dalam paket javafx.scene.text.

Kelas ini berisi beberapa properti untuk membuat teks di JavaFX dan mengubah tampilannya. Kelas ini juga mewarisi kelas Bentuk yang termasuk dalam paketjavafx.scene.shape.

Oleh karena itu, selain properti teks seperti font, alignment, line spacing, teks, dll. Ini juga mewarisi properti node bentuk dasar seperti strokeFill, stroke, strokeWidth, strokeType, dll.

Membuat Node Teks

Sejak kelas Teks paket javafx.scene.text mewakili node teks di JavaFX, Anda dapat membuat teks dengan membuat instance kelas ini sebagai berikut -

Text text = new Text();

Teks kelas berisi properti bernama text jenis string, yang mewakili teks yang akan dibuat.

Setelah membuat instance kelas Teks, Anda perlu menyetel nilai ke properti ini menggunakan setText() metode seperti yang ditunjukkan di bawah ini.

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

Anda juga dapat mengatur posisi (asal) teks dengan menetapkan nilai ke properti x dan y menggunakan metode penyetel masing-masing yaitu setX() dan setY() seperti yang ditunjukkan pada blok kode berikut -

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

Contoh

Program berikut adalah contoh yang mendemonstrasikan cara membuat node teks di JavaFX. Simpan kode ini dalam file dengan namaTextExample.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); 
   } 
}

Kompilasi dan jalankan file java yang disimpan dari command prompt menggunakan perintah berikut.

javac TextExample.java 
java TextExample

Saat menjalankan, program di atas menghasilkan jendela JavaFX yang menampilkan teks yang ditentukan sebagai berikut -

Posisi dan Font Teks

Secara default, teks yang dibuat oleh kelas teks memiliki font…, size…, dan berwarna hitam.

Anda dapat mengubah ukuran font dan warna teks menggunakan setFont()metode. Metode ini menerima objek dariFont kelas.

Kelas bernama Font dari paket javafx.scene.textdigunakan untuk menentukan fonta teks. Kelas ini berisi metode statis bernamafont().

Metode ini menerima empat parameter yaitu -

  • family - Ini adalah tipe String dan mewakili keluarga font yang ingin kita terapkan ke teks.

  • weight- Properti ini mewakili bobot font. Ini menerima 9 nilai, yaitu -FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Properti ini mewakili postur font (biasa atau miring). Ini menerima dua nilaiFontPosture.REGULAR dan FontPosture.ITALIC.

  • size - Properti ini bertipe double dan mewakili ukuran font.

Anda dapat mengatur font ke teks dengan menggunakan metode berikut -

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

Contoh

Program berikut adalah contoh yang mendemonstrasikan cara mengatur fonta node teks di JavaFX. Di sini, kami mengatur font menjadi Verdana, weight menjadi bold, postur menjadi regular dan size menjadi 20.

Simpan kode ini dalam file dengan nama 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); 
   } 
}

Kompilasi dan jalankan file java yang disimpan dari command prompt menggunakan perintah berikut.

javac TextFontExample.java 
java TextFontExample

Saat menjalankan, program di atas menghasilkan jendela JavaFX yang menampilkan teks dengan font yang ditentukan sebagai berikut -

Stroke dan Warna

Kelas Teks juga mewarisi bentuk kelas dari paket. Karena itu, Anda bisa menggunakanjavafx.scene.shape yang dengannya Anda dapat mengatur goresan dan warna ke simpul teks juga.

Anda dapat mengatur warna pada teks menggunakan setFill() metode kelas bentuk (warisan) sebagai berikut -

text.setFill(Color.BEIGE);

Demikian pula, Anda dapat mengatur warna guratan teks menggunakan metode ini setStroke(). Sedangkan lebar guratan bisa diatur menggunakan metodesetStrokeWidth() sebagai berikut -

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

Contoh

Program berikut adalah contoh yang mendemonstrasikan bagaimana mengatur color, strokeWidth dan strokeColor, dari node teks. Dalam kode ini, kita mengatur warna guratan menjadi - biru, warna teks menjadi - coklat dan lebar guratan menjadi - 2.

Simpan kode ini dalam file dengan nama 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); 
   } 
}

Kompilasi dan jalankan file java yang disimpan dari command prompt menggunakan perintah berikut.

javac StrokeExample.java 
java StrokeExample

Saat menjalankan, program di atas menghasilkan jendela JavaFX yang menampilkan teks dengan atribut goresan dan warna yang ditentukan sebagai berikut -

Menerapkan Dekorasi ke Teks

Anda juga bisa mengaplikasikan dekorasi seperti strike through; dalam hal ini garis dilewatkan melalui teks. Anda dapat menggarisbawahi teks menggunakan metodeText kelas.

Anda dapat membaca teks menggunakan metode ini setStrikethrough(). Ini menerima nilai Boolean, teruskan nilainyatrue ke metode ini untuk menembus teks seperti yang ditunjukkan pada kotak kode berikut -

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

Dengan cara yang sama, Anda bisa menggarisbawahi teks dengan meneruskan nilainya true ke metode setUnderLine() sebagai berikut -

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

Contoh

Program berikut adalah contoh yang mendemonstrasikan bagaimana mengaplikasikan dekorasi seperti underline atau strike throughke teks. Simpan kode ini dalam file dengan namaDecorationsExample.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); 
   } 
}

Kompilasi dan jalankan file Java yang disimpan dari command prompt menggunakan perintah berikut.

javac DecorationsExample.java 
java DecorationsExample

Saat menjalankan, program di atas menghasilkan jendela JavaFX seperti yang ditunjukkan di bawah ini -