翻译自  Label

本章介绍如何使用Label驻留在javafx.scene.controlJavaFX API包中的类来显示文本元素。了解如何包装文本元素以适合特定空间,添加图形图像或应用视觉效果。

图2-1显示了三种常见的标签用法。左侧的标签是带有图像的文本元素,中间的标签表示旋转的文本,右侧的标签呈现包装的文本。

图2-1带标签的示例应用程序

创建标签

JavaFX API提供了三个Label类的构造函数,用于在应用程序中创建标签,如例2-1所示。

示例2-1创建标签

//An empty label
Label label1 = new Label();
//A label with the text element
Label label2 = new Label("Search");
//A label with the text element and graphical icon
Image image = new Image(getClass().getResourceAsStream("labels.jpg"));
Label label3 = new Label("Search", new ImageView(image));

在代码中创建标签后,可以使用以下Labeled类的方法向其中添加文本和图形内容。

  • setText(String text)方法-指定标签文本标题

  • setGraphic(Node graphic)- 指定图形图标

setTextFill方法指定绘制标签文本元素的颜色。研究例2-2。它会创建一个文本标签,为其添加一个图标,并指定文本的填充颜色。

示例2-2向标签添加图标和文本填充

Label label1 = new Label("Search");
Image image = new Image(getClass().getResourceAsStream("labels.jpg"));
label1.setGraphic(new ImageView(image));
label1.setTextFill(Color.web("#0076a3"));

将此代码片段添加到应用程序时,会生成如图2-2所示的标签。

图2-2带图标的标签

为按钮定义文本和图形内容时,可以使用该setGraphicTextGap方法设置它们之间的间隙。

此外,您可以使用该setTextAlignment方法更改其布局区域内标签内容的位置。还可以通过施加限定的图形相对于所述文本的位置setContentDisplay的方法和指定以下之一ContentDisplay:常数LFFTRIGHTCENTERTOPBOTTOM

设置字体

比较图2-1和图2-2中的搜索标签。请注意,图2-1中的标签具有更大的字体大小。这是因为示例2-2中显示的代码片段未指定标签的任何字体设置。它使用默认字体大小呈现。

要提供标签默认值以外的字体文本大小,请使用类的setFont方法Labeled。示例2-3中的代码片段将label1文本的大小设置为30磅,将字体名称设置为Arial。对于label2,将文本大小设置为32磅,将字体名称设置为Cambria。

示例2-3应用字体设置

//Use a constructor of the Font class
label1.setFont(new Font("Arial", 30));
//Use the font method of the Font class
label2.setFont(Font.font("Cambria", 32));

文字换行

创建标签时,有时您必须将其放入小于您需要渲染的空间内。要拆分(换行)文本以使其适合布局区域,请设置方法的truesetWrapText,如示例2-4所示。

示例2-4启用文本环绕

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

将label3添加到应用程序的内容时,将呈现如图2-3所示的内容。

图2-3带有文本换行的标签

假设标签的布局区域不仅受其宽度的限制,还受其高度的限制。当无法呈现整个必需的文本字符串时,您可以指定标签的行为。使用类的setTextOverrun方法Labeled和其中一种可用OverrunStyle类型来定义如何处理无法正确呈现的文本字符串部分。有关OverrunStyle类型的更多信息,请参阅API文档。

应用效果

虽然标签是静态内容且无法编辑,但您可以对其应用视觉效果或变换。例2-5中的代码片段将label2旋转270度并垂直平移其位置。

例2-5旋转标签

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

旋转和转换是JavaFX API中可用的典型转换。此外,您可以设置一种效果,当用户将鼠标光标悬停在标签上时,该效果可以缩放(放大)标签。

例2-6中显示的代码片段将缩放效果应用于label3。在MOUSE_ENTERED标签上触发事件时,为setScaleXsetScaleY方法设置比例因子1.5 。当用户将鼠标光标移出标签并MOUSE_EXITED发生事件时,比例因子将设置为1.0,并且标签将以其原始大小呈现。

例2-6应用缩放效果

label3.setOnMouseEntered(new EventHandler<MouseEvent>() {@Override public void handle(MouseEvent e) {label3.setScaleX(1.5);label3.setScaleY(1.5);}
});label3.setOnMouseExited(new EventHandler<MouseEvent>() {@Override public void handle(MouseEvent e) {label3.setScaleX(1);label3.setScaleY(1);}
});

图2-4显示了label3的两种状态。

图2-4缩放标签

相关的API文档  

  • Label

  • Labeled

JavaFX UI控件教程(三)之Label相关推荐

  1. JavaFX UI控件教程(二)之JavaFX UI控件

    翻译自  JavaFX UI控件 本章概述了通过API提供的JavaFX UI控件. JavaFX UI控件是使用场景图中的节点构建的.因此,控件可以使用JavaFX平台的视觉丰富功能.由于JavaF ...

  2. JavaFX UI控件教程(八)之Choice Box

    翻译自   Choice Box 本章介绍了选项框,这些UI控件提供了在几个选项之间快速选择的支持. 使用ChoiceBox该类将选择框添加到JavaFX应用程序.其简单的实现如图7-1所示. 图7- ...

  3. JavaFX UI控件教程(一)之简述

    翻译自  JavaFX UI控件概述 关于本教程 本教程介绍JavaFX API中提供的内置JavaFX UI控件. 该文件包含以下章节: JavaFX UI控件 标签 按钮 单选按钮 切换按钮 复选 ...

  4. JavaFX UI控件教程(二十八)之UI控件的自定义

    翻译自  Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...

  5. JavaFX UI控件教程(二十二)之Titled Pane和Accordion

    翻译自  Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合. 标题窗格是带标题的面板.它可以打开和关闭,它可以封装任 ...

  6. JavaFX UI控件教程(二十三)之Menu

    翻译自  Menu 本章介绍如何创建菜单和菜单栏,添加菜单项,将菜单分组,创建子菜单以及设置上下文菜单. 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单. 菜单栏 菜单项 菜单 ...

  7. JavaFX UI控件教程(十五)之Combo Box

    翻译自   Combo Box 本章介绍如何在JavaFX应用程序中使用组合框.它讨论了可编辑和不可编辑的组合框,教您如何跟踪可编辑组合框中的更改并处理它们上的事件,并解释如何使用单元工厂来更改组合框 ...

  8. JavaFX UI控件教程(九)之Text Field

    翻译自   Text Field 本章讨论文本字段控件的功能. 的TextField类实现接受并显示文本输入的UI控制.它提供了从用户接收文本输入的功能.与另一个文本输入控件一起,PasswordFi ...

  9. JavaFX UI控件教程(四)之Button

    翻译自  Button Button通过JavaFX API提供的类使开发人员能够在用户单击按钮时处理操作.该Button班是的扩展Labeled类.它可以显示文本,图像或两者.图3-1显示了具有各种 ...

  10. JavaFX UI控件教程(二十一)之Tooltip

    翻译自  Tooltip 在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件. 的Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件.可以通过 ...

最新文章

  1. 如何在 Kaggle 首战中进入前 10%
  2. Docker-Compose简介与Ubuntu Server 上安装Compose
  3. mkyaffs2image编译
  4. AIsing Programming Contest 2020 总结
  5. Win10系统自带输入法怎么设置
  6. int取值范围的注意问题
  7. 35.NO module named zlib
  8. 在Eclipse新建菜单中添加菜单项,其他地方添加菜单项类似
  9. go语言--goroutine
  10. proto3与proto2的区别
  11. 记录php运行日记的方法
  12. java爬虫 教程_Java爬虫其实也很简单,教你实用的入门级爬虫
  13. ZCU106 VCU Linux驱动转裸机驱动篇(一)
  14. IOS开发之相机、相册页面英文问题
  15. java技术路线思维导图_开题报告中的研究方法及技术路线指的啥?
  16. 企业怎么管理多个邮箱?如何高效地管理邮件?
  17. JAVA 1058:求一元二次方程
  18. tACS恢复老年人认知控制能力的EEG功能和DTI结构网络机制
  19. 三坐标测圆的直径怎么测_大半径短圆弧用三坐标测不准?知道为什么吗?
  20. vmware linux访问windowsxp下的文件

热门文章

  1. 455. 分发饼干001(贪心算法+详解)
  2. 「offer来了」浅谈前端面试中开发环境常考知识点
  3. [PAT乙级]1036 跟奥巴马一起编程
  4. 2019年第十届蓝桥杯国赛B组试题E-路径计数-dfs(坑题)
  5. [蓝桥杯][基础练习VIP]FJ的字符串-递归
  6. Most Unstable Array CodeForces - 1353A(数学+贪心+建设性算法)
  7. Rochambeau POJ - 2912 (枚举和加权并查集+路径压缩)找唯一裁判
  8. P3250 [HNOI2016]网络(整体二分)
  9. poj 2191 Mersenne Composite Numbers
  10. E - The Imp(博弈/动态规划)