JavaFX2.0 标签label

哎呀小生 贡献于2012-01-09

作者 SkyPlay  创建于2011-11-13 18:37:00   修改者Windows 用户  修改于2011-12-21 03:34:00字数2740

文档摘要: Label 类位于JavaFXAPI的 javafx.scene.control 包中,它继承了 Labeled 类。Label 类用来显示一个文本元素。你可以让一个文本换行来适应特定大小的空间,也可以加入图像。Figure2-1展示了三个标签的常规用法。左边是带有图像的文本元素,中间的是转动后的文本,右边的是换行文本。
关键词:

 Label 类位于 JavaFX API的 javafx.scene.control 包中,它继承了 Labeled 类。Label 类用来显示一个文本元素。你可以让一个文本换行来适应特定大小的空间,也可以加入图像。 Figure 2-1 展示了三个标签的常规用法。左边是带有图像的文本元素,中间的是转动后的文本,右边的是换行文本。   Figure 2-1 Sample Application with 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 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 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() { @Override public void handle(MouseEvent e) { label3.setScaleX(1.5); label3.setScaleY(1.5); } }); label3.setOnMouseExited(new EventHandler() { @Override public void handle(MouseEvent e) { label3.setScaleX(1); label3.setScaleY(1); } }); Figure 2-4   展示了label3的两个状态。 Figure 2-4 Zooming a Label

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档