`
somefuture
  • 浏览: 1089783 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

原文地址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

A JavaFX application with three labels
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 .

Figure 2-2 Label with Icon

Description of Figure 2-2 follows
Description of "Figure 2-2 Label with Icon"

当为按钮定义文本和图像内容时,可以用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 class
label1.setFont(new Font("Arial", 30));
//Use the font method of the Font class
label2.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

A label with wrapped text
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

Two states of a label with wrapped text
Description of "Figure 2-4 Zooming a Label"

0
2
分享到:
评论

相关推荐

    JavaFX2.0 体系结构和框架

    【JavaFX2.0 体系结构和框架】深入解析 JavaFX2.0 是一个基于Java技术的丰富客户端平台,专为开发富互联网应用程序(RIAs)设计,它以其出色的动态画面和美观的用户界面而受到赞誉。尽管中文资料相对较少,但通过对...

    javaFX高级教程JavaFX2.0的FXML语言 中文文档

    ### JavaFX 2.0 的 FXML 语言高级教程 #### 概述 JavaFX 2.0 引入了一种新的声明性标记语言——FXML(发音为 “fizz-le”),这是一种基于 XML 的语言,专门用于定义应用程序的用户界面。通过使用 FXML,开发者...

    JavaFX高级教程:JavaFX2.0的FXML语言(中文版)

    JavaFX 2.0 是一个强大的富互联网应用程序(RIA)平台,用于构建具有美观图形界面的应用程序。在JavaFX 2.0中,FXML(FXML Language)被引入,这是一种基于XML的声明性语言,专门用于定义应用程序的用户界面。这个...

    javafx2.0 中文文档.zip

    这个“javafx2.0 中文文档.zip”压缩包包含了关于JavaFX 2.0的中文文档,对于理解和学习这个技术至关重要。 首先,JavaFX 2.0的核心是它的 scenegraph 模型,这是一种基于节点的对象模型,用于构建复杂的用户界面。...

    javafx2.0官方例子

    javafx2.0,java,javafx,例子,代码 Sun公司(已于20092008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语 言开发富互联网应用程序(RIA)。JavaFX Script编程语言(以下称为JavaFX)是Sun微...

    JavaFX 2.0 電子書 - Pro JavaFX 2

    最新JavaFx 2.0 電子書 In Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology, Jim Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, and Johan Vos show you how you can use the JavaFX ...

    JavaFx2.0入门指南

    JavaFX 2.0 入门指南是针对那些希望通过JavaFX快速开发富用户体验应用程序的开发者设计的。这个指南,源自Oracle官方,包含了中英文对照,旨在帮助初学者快速上手。在本文档中,你将学习如何利用JavaFX创建一个名为...

    JavaFX 2.0 Introduction by Example.zip

    JavaFX 2.0 Introduction by Example.zip是javafx2.0的最新书籍《[JavaFX.2.0:Introduction.by.Example].Carl.Dea》上的源码!大家可以下载本书和源码一起看!我都上传了!

    JavaFX2.0内建控件教程(全部控件)

    ### JavaFX 2.0 内建控件教程 #### 1. UI控件概览 JavaFX 2.0 提供了一系列丰富的内置用户界面(UI)控件,这些控件可以帮助开发者快速构建美观且功能强大的应用程序。JavaFX UI 控件位于 `javafx.scene.control` ...

    javafx2.0在netbeans插件

    JavaFX 2.0 是 Oracle 公司推出的一个强大的富客户端开发平台,它允许开发者创建具有丰富图形用户界面和交互性的应用程序。NetBeans IDE 是一个流行的开源集成开发环境(IDE),支持多种编程语言,包括 Java。`...

    Javafx 2.0: Introduction by Example

    Javafx 2.0: Introduction by Example

    JavaFX2.0基础教程.pdf

    ### JavaFX2.0基础教程知识点总结 #### 1. JavaFX概览 - **JavaFX认知**:JavaFX是一个由Java技术构建的平台,它旨在简化富互联网应用程序(RIA)的创建与部署过程,这些应用程序能够跨多个平台运行并且具有统一的...

    JavaFX2.0基础教程(整合版)

    JavaFX2.0平台是java客户端设计演进,使应用开发者易于创建和部署跨平台且表现一致的Rich Internet Application(RIAs)。JavafX是由Java技术构建,基于高性能硬件加速的媒体和图形引擎,JavaFX平台提供了一套丰富的...

    javafx_2.0_introduction_by_example

    根据给定文件的信息,我们可以提炼出关于JavaFX 2.0的重要知识点,这些知识点涵盖了JavaFX的基本概念、架构策略、发展历程以及其在图形用户界面(GUI)开发中的应用。 ### JavaFX 2.0:下一代GUI工具包 JavaFX 2.0...

    JavaFX2.0IntroductionbyExamplePDFBooks.pdf 英文原版

    JavaFX 2.0 Introduction by Example – PDF Books

Global site tag (gtag.js) - Google Analytics