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 字符串类型,表示要创建的文本。实例化 Text 类后,您需要使用 setText() 方法如下图。String text = "Hello how are you" Text.setText(text);
您还可以通过使用各自的 setter 方法指定属性 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 - 这是一个字符串类型,代表我们要应用于文本的字体系列。
-
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 窗口,如下所示 -