JavaFX Text类
在某些情况下,我们需要在应用程序界面上提供基于文本的信息。为此,JavaFX 库提供了一个名为javafx.scene.text.Text的类。此类提供了各种方法来更改文本的各种属性。我们只需要实例化这个类就可以在我们的应用程序中实现文本。
1 Text类的属性
属性 | 描述 | setter方法 |
---|---|---|
boundstype | 此属性为对象类型。它决定了计算文本边界的方式。 | setBoundsType(TextBoundsType value) |
font | 文本的字体。 | setFont(Font value) |
fontsmoothingType | 定义字体请求的平滑类型 | setFontSmoothingType(FontSmoothingType value) |
linespacing | 线之间的垂直空间(以像素为单位)。它是双重类型的属性。 | setLineSpacing(double spacing) |
strikethrough | 这是一个布尔类型的属性。我们可以通过将此属性设置为 true 来在文本中放置一行。 | setStrikeThrough(boolean value) |
textalignment | 水平文本对齐 | setTextAlignment(TextAlignment value) |
textorigin | 局部坐标系中文本坐标系的原点 | setTextOrigin(VPos value) |
text | 它是一个字符串类型的属性。它定义了要显示的文本字符串 | setText(String value) |
underline | 它是一个布尔类型的属性。我们可以通过将此属性设置为 true 来为文本加下划线 | setUnderLine(boolean value) |
wrappingwidth | 文本要换行的文本宽度限制。它是一个双重类型的属性 | setWrappingWidth(double value) |
x | 文本的 X 坐标 | setX(double value) |
y | 文本的 Y 坐标 | setY(double value) |
2 创建文本节点
类javafx.scene.text.Text需要实例化以创建文本节点。使用 setter 方法setText(string)将字符串设置为文本类对象的文本。按照下面给出的语法来实例化 Text 类。
Text <text_Object> = new Text();
text.setText(<string-text>);
3 Text类的例子
以下示例说明了Text类。在这里,我们没有设置文本的位置,因此文本将显示在屏幕中央。
package com.yiidian;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Shape_Example extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Text text = new Text();
text.setText("Hello !! 欢迎光临一点教程网");
StackPane root = new StackPane();
Scene scene = new Scene(root,300,400);
root.getChildren().add(text);
primaryStage.setScene(scene);
primaryStage.setTitle("Text Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
输出结果为:
4 文本的字体和位置
JavaFX 使我们能够将各种字体应用于文本节点。我们只需要使用 setter 方法setFont()来设置Text 类的属性字体。此方法接受Font类的对象。Font类属于javafx.scene.text包。它包含一个名为font()的静态方法。这将返回一个Font类型的对象,该对象将作为参数传递给 Text 类的setFont()方法。Font.font()方法接受以下参数。
- Family:代表字体的类型。它是字符串类型,应该是系统中存在的适当字体系列。
- Weight:此 Font 类属性用于字体的粗细。有 9 个值可用作字体粗细。值为FontWeight.BLACK、BOLD、EXTRA_BOLD、EXTRA_LIGHT、LIGHT、MEDIUM、NORMAL、SEMI_BOLD、THIN。
- Posture:这个Font类属性代表字体的姿势。它可以是FontPosture.ITALIC或FontPosture.REGULAR。
- Size:这是一个双重类型的属性。它用于设置字体的大小。
下面给出了 setFont() 方法的语法。
<text_object>.setFont(Font.font(<String font_family>, <FontWeight>, <FontPosture>, <FontSize>)
例子:
package com.yiidian;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Shape_Example extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Text text = new Text();
text.setX(100);
text.setY(20);
text.setFont(Font.font("Abyssinica SIL",FontWeight.BOLD,FontPosture.REGULAR,20));
text.setText("欢迎访问一点教程网");
Group root = new Group();
Scene scene = new Scene(root,500,200);
root.getChildren().add(text);
primaryStage.setScene(scene);
primaryStage.setTitle("Text Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
输出结果为:
5 对文本应用描边和颜色
Stroke 表示文本边界处的填充。JavaFX 允许我们对文本应用描边和颜色。javafx.scene.text.Text类提供了一个名为setStroke()的方法,它接受 Paint 类对象作为参数。只需传递将在笔划上绘制的颜色。我们还可以通过将 double 类型的宽度值传递给setStrokeWidth()方法来设置笔画的宽度。为了设置 Text 的颜色,javafx.scene.text.Text类提供了另一个名为setFill() 的方法。我们只需要传递要在文本中填充的颜色。
例子:
package com.yiidian;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Shape_Example extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Text text = new Text();
text.setX(100);
text.setY(20);
text.setFont(Font.font("Abyssinica SIL",FontWeight.BOLD,FontPosture.REGULAR,25));
text.setFill(Color.BLUE);// setting colour of the text to blue
text.setStroke(Color.BLACK); // setting the stroke for the text
text.setStrokeWidth(1); // setting stroke width to 2
text.setText("欢迎访问一点教程网");
Group root = new Group();
Scene scene = new Scene(root,500,200);
root.getChildren().add(text);
primaryStage.setScene(scene);
primaryStage.setTitle("Text Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
输出结果为:
6 对文本应用装饰
我们可以通过设置属性应用于装饰的文字删除线和下划线的javafx.scene.text.Text类。下面给出了这两种方法的语法。
<TextObject>.setStrikeThrough(Boolean value) //pass true to put a line across the text
<TextObject>.setUnderLine(Boolean value) //pass true to underline the text
我们还可以将 JavaFX 效果应用于 Text 类对象。我们将在接下来的章节中讨论 JavaFX 效果。
package com.yiidian;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Shape_Example extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Text text = new Text();
text.setX(100);
text.setY(40);
text.setFont(Font.font("Liberation Serif",25));
text.setText("Hello !!");
text.setStrikethrough(true);
Text text1=new Text();
text1.setX(100);
text1.setY(140);
text1.setText("欢迎光临一点教程网");
text1.setFont(Font.font("Liberation Serif",25));
text1.setUnderline(true);
Group root = new Group();
Scene scene = new Scene(root,500,200);
root.getChildren().addAll(text,text1);
primaryStage.setScene(scene);
primaryStage.setTitle("Text Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
输出结果为:
热门文章
优秀文章