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

翻译自  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

layui如何实现添加数据时关闭页面层,并实时刷新表格数据?

可能看到标题的你没有明白我到底想表达啥&#xff1f;&#xff08;我起名字时删改多遍&#xff0c;这是最终定下来的&#xff09;&#xff0c;不过&#xff0c;为了让大家看的明白&#xff0c;我专门去做了个演示视频&#xff1a;演示案例使用的技术&#xff1a;ssh框架layui表…

.net core 集成 autofac

1. Install Install-Package AutofacInstall-Package Autofac.Extensions.DependencyInjection 2.Startup 2.1 增加成員 public IContainer ApplicationContainer { get; private set; } 2.2 Startup.ConfigureServices 返回值改為&#xff1a;IServiceProvider 末尾中增…

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

翻译自 Menu 本章介绍如何创建菜单和菜单栏&#xff0c;添加菜单项&#xff0c;将菜单分组&#xff0c;创建子菜单以及设置上下文菜单。 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单。 菜单栏 菜单项 菜单 CheckMenuItem RadioMenuItem 菜单 CustomMenuItem…

利用bootstraptable展示数据,对数据进行排序分页等操作

今天分享一下bootstraptable的相关技能点&#xff0c;由于第一次接触&#xff0c;所以刚开始碰了好多壁&#xff0c;于是趁现在过去不久&#xff0c;先总结总结。 Bootstraptable简单的来说就是一个表格控件&#xff0c;但是这个表格可不是一般的表格&#xff0c;分页、排序、…

JavaFX UI控件教程(二十四)之Password Field

翻译自 Password Field 在本章中&#xff0c;您将了解另一种类型的文本控件&#xff0c;即密码字段。 本PasswordField类实现一个专门的文本字段。通过显示回显字符串来隐藏用户键入的字符。图23-1显示了一个密码字段&#xff0c;其中包含提示消息。 图23-1带有提示消息的密…

3分钟内看完这,bootstraptable表格控件,受益匪浅!

今天分享一下bootstraptable的相关技能点&#xff0c;由于第一次接触&#xff0c;所以刚开始碰了好多壁&#xff0c;于是趁现在过去不久&#xff0c;先总结总结。Bootstraptable简单的来说就是一个表格控件&#xff0c;但是这个表格可不是一般的表格&#xff0c;分页、排序、查…

微软Azure开源开发者(深圳)峰会等你来

微软开发技术与云平台自从迈向开放、开源、跨平台的转型以来&#xff0c;已经受到全球开源社区们的关注。 从 Github 上高居世界首位的开源项目贡献数量&#xff0c;可以看到微软贯彻开源战略的实际行动。另一方面&#xff0c;微软也主动与开源社区做密切的技术交流。 本次 Azu…

这个点名系统太好用了,快来看看……

声明&#xff1a;软件为本人原创&#xff0c;后台回复&#xff1a;随机点名系统&#xff0c;免费下载。大家好&#xff0c;我是雄雄&#xff0c;昨天公众号给大家分享了windows系统和office办公软件激活的方法&#xff0c;正中好多粉丝的下怀。【原文在这里】今天在给大家分享一…

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

翻译自 Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合。 标题窗格是带标题的面板。它可以打开和关闭&#xff0c;它可以封装任何Node诸如UI控件或图像以及添加到布局容器的元素组。 标题窗格可以使用手风琴控件进行分组&#x…

在ASP.NET Core 2.0中使用MemoryCache

说到内存缓存大家可能立马想到了HttpRuntime.Cache,它位于System.Web命名空间下&#xff0c;但是在ASP.NET Core中System.Web已经不复存在。今儿个就简单的聊聊如何在ASP.NET Core中使用内存缓存。我们一般将经常访问但是又不是经常改变的数据放进缓存是再好不过了&#xff0c;…

在ASP.NET Core 2.0中使用CookieAuthentication

在ASP.NET Core中关于Security有两个容易混淆的概念一个是Authentication&#xff08;认证&#xff09;&#xff0c;一个是Authorization&#xff08;授权&#xff09;。而前者是确定用户是谁的过程&#xff0c;后者是围绕着他们允许做什么&#xff0c;今天的主题就是关于在ASP…

JavaFX UI控件教程(二十五)之Color Picker

翻译自 Color Picker 本章介绍ColorPicker控件&#xff0c;提供其设计概述&#xff0c;并说明如何在JavaFX应用程序中使用它。 JavaFX SDK中的颜色选择器控件是一个典型的用户界面组件&#xff0c;使用户可以从可用范围中选择特定颜色&#xff0c;或通过指定RGB或HSB组合来设…

英语不会读怎么办?它来教你……

大家好&#xff0c;我是雄雄&#xff0c;今天我又给大家分享好看又实用的软件啦~今天给大家分享的是一个比昨天的随机点名系统还要实用的软件&#xff0c;如果说昨天的随机点名系统只适合老师或者某些需要点名的朋友使用的话&#xff0c;那么今天分享的软件则是一个人人都可使用…

深入探索.NET框架内部了解CLR如何创建运行时对象

前言 SystemDomain, SharedDomain, and DefaultDomain。对象布局和内存细节。方法表布局。方法分派&#xff08;Method dispatching&#xff09;。 因为公共语言运行时(CLR)即将成为在Windows上创建应用程序的主角级基础架构, 多掌握点关于CLR的深度认识会帮助你构建高效的, …

JavaFX UI控件教程(二十六)之Pagination Control

翻译自 Pagination Control 本章介绍如何向JavaFX应用程序添加分页控件。它教授如何向应用程序添加分页控件&#xff0c;管理其页面项&#xff0c;以及使用CSS样式设置控件元素的样式。 分页控件&#xff0c;用于浏览分成较小部分的多页内容。典型用途包括浏览邮箱中的电子邮…

长风破浪会有时,直挂云帆济沧海……

自从长假开学以来&#xff0c;班内学生的状态一直不如我所愿。前几天刚入学&#xff0c;因为马上就就业了&#xff0c;所以对他们的安排还是以做项目为主&#xff0c;早在假期的时候就已经将学生分为人数不等的8个小组&#xff0c;其中开发两个小组&#xff0c;前端5个小组以及…

.NET 传奇 1.0 的出版过程,以及未来计划

今年五月初开始在微博的头条文章连载《.NET 的一点历史故事》&#xff0c;是一件非常快乐的事情。在各方朋友们的鼓励和支持之下&#xff0c;除去公开连载的八个章节&#xff0c;其后又先后完成其他十个章节&#xff0c;首先通过收费阅读渠道做了分享。到五月底的时候&#xff…

JavaFX UI控件教程(二十七)之File Chooser

翻译自 File Chooser 本章介绍如何使用FileChooser该类使用户能够导航文件系统。本章提供的示例说明了如何打开一个或多个文件&#xff0c;配置文件选择器对话框窗口以及保存应用程序内容。 与其他用户界面组件类不同&#xff0c;FileChooser该类不属于该javafx.scene.contr…

sql server高级查询,看这篇文章就够了

先选择一个数据库 use jobtest go引入&#xff1a;该数据库jobtest里面有两张表&#xff0c;Student学生表和Grade年级表&#xff0c;表中的数据如下所示&#xff1a; 学生表Student&#xff1a; 年级Grade表&#xff1a; 接下来我们来看看sql server中的子查询&#xff1a…

ssl1104-USACO 2.1城堡(foodfill)【图论,广搜】

##前言 由于这道题比较难&#xff0c;有不好描述&#xff0c;我就直接贴题目了。 ##Description 以一个几乎超乎想像的运气&#xff0c;农民约翰在他的生日收到了一张爱尔兰博彩的奖券。 这一张奖券成为了唯一中奖的奖券。 农民约翰嬴得爱尔兰的乡下地方的一个传说中的城堡。 …