Text

■ 关于Text

一个Text类(javafx.scene.text.Text)对象,代表一个JavaFX的文本控件
文本控件可以设定大小,颜色等样式

Text类是Shape类的子类,Shape类又是Node类的子类
因此Text类拥有Shape类和Node类的所有同名方法

Text text = new Text("This is a JavaFX text.");
Scene scene = new Scene(new VBox(text), 300, 250);
primaryStage.setScene(scene);
primaryStage.show();

■ 文本

文本就是Text对象的文本内容
通过 setText() 方法为Text对象设置文本内容

Text text = new Text();
text.setText("This is the text to display");

■ 字体

可以为Text对象设置字体样式
通过 setFont() 方法为Text对象设置字体样式

Text text = new Text("Some Text");
text.setFont(Font.font("Arial"));

Text text = new Text("Some Text");
text.setFont(Font.font("Arial", FontWeight.BOLD, 36));

■ 填充色

Text作为一个Shape对象,可以为其设置填充色,填充色就是字体的颜色
通过 setFill() 方法为Text设置

text.setFill(Color.YELLOW);  //效果就是这个text是黄色的字

■ 描边色

Text作为一个Shape对象,可以为其设置描边色(Stroke Color),描边色就是字体边缘的颜色
默认情况下,Text只被渲染填充色,但使用描边色也许会有更好的装饰效果
通过 setStroke() 方法为Text设置描边色,参数是Color类的属性

text.setStroke(Color.GREEN);

■ 坐标

坐标用于设置Text所在母控件中的显示位置,比如pane(VBox不适用)
通过 setX()setY() 方法为Text设置坐标

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

■ 原点

原点(Orign)用于设置Text在垂直方向上开始显示文本的位置
通俗讲,就是在垂直方向上,从那个点开始显示整个文本
通过 setTextOrigin() 方法为Text设置在垂直方向的显示位置,参数是VPos类的枚举属性

text.setTextOrigin(VPos.BASELINE); //以基线为原点显示文本

VPos类有以下枚举属性

  • VPos.BASELINE: 垂直方向上,显示从文本的基线开始到最底部的部分;

  例子

Text msg = new Text("这是一行文本。");
msg.setTextOrigin(VPos.BASELINE);

  效果
单行
  基线
基线

  • VPos.BOTTOM: 垂直方向上,显示从文本的底部开始到最底部的部分,也就是整个文本都不显示

  例子

Text msg = new Text("这是一行文本。");
msg.setTextOrigin(VPos.BOTTOM);

  效果
在这里插入图片描述

  • VPos.CENTER: 垂直方向上,显示从文本的最中间到底部的部分

  例子

Text msg = new Text("这是一行文本。");
msg.setTextOrigin(VPos.CENTER);

  效果
在这里插入图片描述

  • VPos.TOP: 垂直方向上,显示从文本的最顶部到最底部的部分,也就是显示整个文本

  例子

Text msg = new Text("这是一行文本。");
msg.setTextOrigin(VPos.TOP);

  效果
在这里插入图片描述
注意:
如果涉及的文本是跨行的,则效果只针对文本的第一行
比如基线,它会显示从文本的第一行的基线到文本最后一行的底部的部分
  例子

Text msg = new Text("这是第一行文本。\n这是第二行文本。\n这是第三行文本。");
msg.setTextOrigin(VPos.BASELINE);

  效果
跨多行

■ 跨行

Text文本可以跨行显示
以下情况会跨行显示:

  • 文本中包含换行符"\n"
Text text = new Text("This is a JavaFX text.\nLine 2");
  • 文本宽度超过文本控件上设置的环绕宽度
Text text = new Text("This is a longer JavaFX text.");
text.setWrappingWidth(80);

注意:
文本是以单词为单位换行的
比如文本"this is the first line.", 如果行的宽度正好到line这个单词中间,比如i和n之间,则会在line之前换行,变成
 第1行: “this is the first”
 第2行: “line.”

■ 删除线

可以为Text的文本内容设置删除线
通过 setStrikethrough() 方法为文本设置删除线

text.setStrikethrough(true);  //设置删除线
text.setStrikethrough(false);  //设置不显示删除线

■ 下划线

可以为Text的文本内容设置下划线
通过 setUnderline() 方法为Text文本设置下划线

text.setUnderline(true); //设置下划线
text.setUnderline(false);  //设置不显示下划线

■ 抗锯齿技术

Text控件有两种抗锯齿技术(font smoothing),LCD和GRAY
通过 setFontSmoothingType() 方法设置Text的抗锯齿技术

text.setFontSmoothingType(FontSmoothingType.GRAY);
text.setFontSmoothingType(FontSmoothingType.LCD);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值