翻译自  Tooltip

在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件。

Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件。可以通过调用setTooltip方法在任何控件上设置工具提示。

工具提示有两种不同的状态:激活和显示。激活工具提示后,鼠标移动到控件上。当工具提示处于显示状态时,它实际上会出现。显示的工具提示也被激活。工具提示激活时和实际显示之间通常会有一些延迟。

带有工具提示的密码字段如图20-1所示。

图20-1添加到密码字段的工具提示

创建工具提示

研究示例20-1中的代码片段,该代码片段使用上图所示的JavaFX应用程序中的工具提示创建密码字段。

示例20-1在密码字段中添加工具提示

final PasswordField pf = new PasswordField();
final Tooltip tooltip = new Tooltip();
tooltip.setText("\nYour password must be\n" +"at least 8 characters in length\n"  +
);
pf.setTooltip(tooltip);

javafx.scene.control包中的每个UI控件都有setTooltip添加工具提示的方法。您可以在Tooltip构造函数中或使用该setText方法定义文本标题。

由于Tooltip该类是类的扩展,因此Labeled您不仅可以添加文本标题,还可以添加图形图标。例20-2中的代码片段在密码字段的工具提示中添加了一个图标。

示例20-2在工具提示中添加图标

Image image = new Image(getClass().getResourceAsStream("warn.png")
);
tooltip.setGraphic(new ImageView(image));

将此代码片段添加到应用程序并编译并运行代码后,将显示图20-2中所示的工具提示。

图20-2带图标的工具提示

工具提示不仅可以包含附加信息或辅助信息,还可以包含数据。

在工具提示中显示应用程序数据

图20-3中的应用程序使用工具提示中显示的信息来计算酒店住宿的总成本

图20-3计算酒店价格

每个复选框都附有工具提示。每个工具提示都会显示特定预订选项的费率。如果用户选中复选框,则会将相应的值添加到总计。如果取消选中所选复选框,则会从总计中扣除相应的值。

查看例20-3中显示的应用程序的源代码。

示例20-3使用工具提示计算酒店价格

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;public class Main extends Application {final static String[] rooms = new String[]{"Accommodation (BB)","Half Board","Late Check-out","Extra Bed"};final static Integer[] rates = new Integer[]{100, 20, 10, 30};final CheckBox[] cbs = new CheckBox[rooms.length];final Label total = new Label("Total: $0");Integer sum = 0;public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {Scene scene = new Scene(new Group());stage.setTitle("Tooltip Sample");stage.setWidth(300);stage.setHeight(150);total.setFont(new Font("Arial", 20));for (int i = 0; i < rooms.length; i++) {final CheckBox cb = cbs[i] = new CheckBox(rooms[i]);final Integer rate = rates[i];final Tooltip tooltip = new Tooltip("$" + rates[i].toString());tooltip.setFont(new Font("Arial", 16));cb.setTooltip(tooltip);cb.selectedProperty().addListener(new ChangeListener<Boolean>() {public void changed(ObservableValue<? extends Boolean> ov,Boolean old_val, Boolean new_val) {if (cb.isSelected()) {sum = sum + rate;} else {sum = sum - rate;}total.setText("Total: $" + sum.toString());}});}VBox vbox = new VBox();vbox.getChildren().addAll(cbs);vbox.setSpacing(5);HBox root = new HBox();root.getChildren().add(vbox);root.getChildren().add(total);root.setSpacing(40);root.setPadding(new Insets(20, 10, 10, 20));((Group) scene.getRoot()).getChildren().add(root);stage.setScene(scene);stage.show();}
}

中的代码行实施例20-4在用实施例20-3创建工具提示和分配文本字幕到它。该Integer期权价格的值转换成String数值。

示例20-4设置工具提示的值

final Tooltip tooltip = new Tooltip("$" + rates[i].toString())

您可以通过应用CSS来改变工具提示的视觉外观。

相关的API文档 

  • Tooltip

  • Labeled

JavaFX UI控件教程(二十一)之Tooltip相关推荐

  1. JavaFX UI控件教程(十一)之Scroll Pane

    翻译自   Scroll Pane 在本章中,您将学习如何在JavaFX应用程序中构建滚动窗格. 滚动窗格提供UI元素的可滚动视图.此控件使用户可以通过平移视口或使用滚动条来滚动内容.具有默认设置和添 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. JavaFX UI控件教程(二十)之HTML Editor

    翻译自  HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...

  9. JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator

    翻译自  Progress Bar and Progress Indicator 在本章中,您将了解进度指示器和进度条,以及可视化JavaFX应用程序中任何操作进度的UI控件. 本ProgressIn ...

最新文章

  1. 使用深度学习opencv 进行人脸年龄的实时检测
  2. LoadRunner学习笔记(一)
  3. windows 搭建kms服务器激活_自建KMS激活服务器的两种方法
  4. Struts2的Action配置的各项默认值
  5. 计算机的双一流学校,分数不够上双一流大学计算机专业,上这些大学也不错,实力非常强...
  6. ubuntu14.04 mysql5.6_ubuntu14.04编译安装mysql5.6.28
  7. 网盘中搭建git服务
  8. ShortUrl短网址算法
  9. 写c++好的软件_族谱家谱制作怎么写?专业的家谱族谱编辑制作软件哪个好
  10. Python词云库wordcloud 显示中文 !!!
  11. 关于 IP 属地的一些科普
  12. 计算机图形学【GAMES-101】12、相机(视场、曝光、光圈(F-Stop)、薄棱镜近似、CoC、景深)
  13. 生鲜电商带火冷链物流,中、圆、申三通如何拼了命地排兵布阵
  14. 对今日头条问答部分的预测-未来可能会挂掉
  15. 【将门创投】如何让飘在半空的计算机视觉技术与需求落地?
  16. win7防火墙例外设置方法_win7防火墙添加端口方法
  17. java服务监控_Java最流行的微服务框架监控和各种监控数据
  18. Blender新手入门练习 宝剑
  19. window index.dat分析
  20. 虚拟办公室,节省运营成本

热门文章

  1. 后端学习 - MySQL存储引擎、索引与事务
  2. PHP做二次开发:ThinkCMF门户应用安装
  3. [Spring5]IOC容器_Bean管理XML方式_注入其他类型属性
  4. [C++STL]map容器用法介绍
  5. 2019年第十届蓝桥杯国赛B组试题D-求值-枚举
  6. 评分较高对鸿蒙文,万倍增幅:鸿蒙至高神,加入诸天万界群
  7. Newton Method in Maching Learning
  8. P4331 [BalticOI 2004]Sequence 数字序列(左偏树)
  9. P3714 [BJOI2017]树的难题(点分治/线段树/单调队列)
  10. P4897 【模板】最小割树(Gomory-Hu Tree)(网络流/最小割/树形结构)