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 -