javaFX 学习之ui控件Label的使用(转载)

原文链接:

DOC-03-02 标签(Label) | JavaFX中文资料

如何使用标签(Label),该类位于JavaFX API的javafx.scene.control包中,用于展示一个文本元素。接下来会介绍如何让文本元素折叠换行来适应受限空间,添加一个图标,或使用视觉特效

显示了Label的三种常见用法。左边的Label是一个带图标的文本,中间的展示了旋转效果,右边的使用了折叠换行设置。

 

创建一个Label 

JavaFX API为Label提供了三个构造方法 

3

4

5

6

7

//一个空Label

Label label1 = new Label();

//一个带文本元素的Label

Label label2 = new Label("Search");

//一个带文本和图标的Label

Image image = new Image(getClass().getResourceAsStream("labels.jpg"));

Label label3 = new Label("Search", new ImageView(image));

 

在你创建了一个Label之后,你可以使用Labeled类的以下方法来设置或者修改文本以及图标

·setText(String text) method——指定文本内容

·setGraphic(Node graphic)——指定图标

setTextFill()方法可以设定文本的填充颜色。例创建一个带文本的Label,为其添加了一个图标,并指定了文本填充颜色

 

如果为标签同时设置了文本和图标,可以使用setGraphicTextGap()方法来设置它们之间的间距。

另外,你可以使用setTextAlignment()方法改变其对齐方向。你还可以通过setContentDisplay(ContentDisplay value)方法定义图形与文本的相对位置,ContentDisplay常量的可选值为:居左LEFT,居右RIGHT,居中CENTER,居上TOP,居下BOTTOM

你可以使用setFont()方法来对Label的默认字体大小进行修改。代码片段中label1的文本字体大小设置为30 points,并且将字体设置为Arial,label2大小为32 points,字体为Cambria 

1

2

3

4

//使用Font类的构造函数来构造Font对象

label1.setFont(new Font("Arial", 30));

//使用Font类的font静态方法

label2.setFont(Font.font("Cambria", 32));

 

折叠换行文字

当你需要在一个比较小的空间内放置一个Label时,对文本进行折叠换行能够更好地适应布局空间大小。这时需要使用setWrapText方法,并将其值参数为true

启用文本折叠换行

1
2
Label label3 = new Label("A label that needs to be wrapped");
label3.setWrapText(true);

 当label3被添加到应用程序中

折叠换行文本的Label

3-2-3 label-wrap

 

如果标签的布局区域不仅有宽度限制,还有高度限制,那么你可以指定当无法显示所有的文本内容时标签的显示行为。你可以使用setTextOverrun(OverrunStyle value)方法来实现此功能,其中OverrunStyle用于指示如何处理不能完全呈现出来的文本。如需了解更多详细信息,请参考OverrunStyle类型的API文档 

 

添加视觉特效

尽管一个标签是不能编辑的静态内容,但你依然可以对它添加视觉特效或者变换效果。代码片段中将label2旋转了270度,并垂直移动了它的位置

旋转一个标签

1
2
3
4
Label label2 = new Label("Values");
label2.setFont(new Font("Cambria", 32));
label2.setRotate(270);
label2.setTranslateY(50);

 旋转和位移是JavaFX API中典型的变换效果。此外,你还可以设置缩放效果,它的作用是当用户将鼠标光标悬停于标签上时将其放大显示

对label3设置了缩放效果。当MOUSE_ENTERED事件被触发时,将会通过setScaleX和setScaleY方法设置缩放因子为1.5。当用户将鼠标从标签上移开时会触发MOUSE_EXITED事件,此时缩放比例因子将会还原为1.0,标签将会恢复其原始大小 

缩放效果

Java
1
2
3
4
5
6
7
8
9
label3.setOnMouseEntered((MouseEvent e) -> {
    label3.setScaleX(1.5);
    label3.setScaleY(1.5);
});
 
label3.setOnMouseExited((MouseEvent e) -> {
    label3.setScaleX(1);
    label3.setScaleY(1);
});

 显示了label3的两种状态(发大标签效果)

3-2-4 label-zoom

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值