(翻译)第八回 JavaFX2.0 标签Label

小编 2026-06-07 阅读:1292 评论:0
原文地址http://download.oracle.com/javafx/2.0/ui...

原文地址http://download.oracle.com/javafx/2.0/ui_controls/label.htm

 

 Label 类位于 JavaFX API的 javafx.scene.control 包中,它继承了 Labeled 类。Label 类用来显示一个文本元素。你可以让一个文本换行来适应特定大小的空间,也可以加入图像。

Figure 2-1 展示了三个标签的常规用法。左边是带有图像的文本元素,中间的是转动后的文本,右边的是换行文本。

 

Figure 2-1 Sample Application with Labels

(翻译)第八回 JavaFX2.0 标签Label
Description of "Figure 2-1 Sample Application with Labels"

 

创建Label

JavaFX API提供了三个Label 类的构造方法来创建标签,见代码Example 2-1 .

Example 2-1 Creating Labels

//空标签Label label1 = new Label();//有文本的标签Label label2 = new Label("Search");//有文本有图像Image image = new Image(getClass().getResourceAsStream("labels.jpg"));Label label3 = new Label("Search", new ImageView(image));

创建标签后就可以用下面Labeled 类的方法向其中添加文本和图像内容。

  •  setText(String text) – 为标签指定一个标题。
  • setGraphic(Node graphic) – 指定图标

setTextFill方法为标签的文本元素指定了颜色。研究下 Example 2-2:先创建了一个文本标签,又添加了一个图标,再指定文本的填充颜色。

 

Example 2-2 Adding an Icon and Text Fill to a Label

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

 

这块代码加入到程序中后,就产生了一个标签,见Figure 2-2 .

当为按钮定义文本和图像内容时,可以用setGraphicTextGap 方法在之间产生空白。

另外,可以在标签的布局设置区域使用setTextAlignment 方法来改变标签的位置。你也可以通过 setContentDisplay 方法为图像定义针对文本的相对位置,指定下面任意一个ContentDisplay常量: LFFT , RIGHT , CENTER , TOP , BOTTOM .

设置字体

比较一下 Figure 2-1 和 Figure 2-2 中的搜索标签,注意Figure 2-1 中的标签是大字体。这是因为Example 2-2 中的代码块没有为标签指定任何字体,它被默认文字大小渲染的。

使用Labeled 类的 setFont 方法为标签提供不同于默认值的文字大小。Example 2-3 在的代码块将label1 的文字大小设置为30号并且字体名称是Arial。为label2 设置的是32号和Cambria字体。

Example 2-3 Applying Font Settings

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

换行文本

创建标签后,有时候必须让文本适应这个比它小的标签。 这时必须要打断文本 (换行) 来使它适应布局区域,为 setWrapText 方法设置true值即可。见 Example 2-4。

Example 2-4 Enable Text Wrapping

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

把label3加入程序后,效果如Figure 2-3 .

Figure 2-3 Label with Wrapped Text

(翻译)第八回 JavaFX2.0 标签Label
Description of "Figure 2-3 Label with Wrapped Text"

但是如果标签的布局区域不仅仅是被限制了宽,还限制了高呢?当标签不可能渲染全部文本串时你可以为它指定行为。使用Labeled 类的setTextOverrun 方法和任一OverrunStyle 类型定义如何合适的处理只能部分显示的文本。查询API 文档来了解更多关于OverrunStyle 类型的信息。

使用特效

尽管标签是静态内容不能修改,不过依然可以应用特效或者变换它。 Example 2-5 中的代码块将label2 转动了270 °并且垂直方向平移了50。

 

Example 2-5 Rotating a Label

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

 

旋转和平移是 JavaFX API中的典型变换。此外,你可以为标签设置当用户让鼠标悬停时具有变焦效果 (放大)。Example 2-6 中的代码块为label3应用了变焦效果。 当标签的MOUSE_ENTERED 事件被激发时,setScaleX 和setScaleY 方法设置其缩放比例是1.5。当用户的鼠标离开标签时MOUSE_EXITED 时间发生,缩放比例设为1.0标签就变成原始大小了。

Example 2-6 Applying the Zoom Effect

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);    }});

Figure 2-4   展示了label3的两个状态。

Figure 2-4 Zooming a Label

(翻译)第八回 JavaFX2.0 标签Label
Description of "Figure 2-4 Zooming a Label"

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表