(翻译)第二十四回 JavaFX2.0 提示条ToolTip

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

原文地址http://download.oracle.com/javafx/2.0/ui_controls/tooltip.htm#BABBIJBJ

 

 

Tooltip类产生一个常见的UI控件,一般用来为UI控件添加信息。把鼠标放在控件上提示条就显示出来。任何控件使用 setTooltip方法都能添加提示条。

提示条有2个状态:激活的和显示的。当鼠标放置在控件上时提示条激活,当它显示出来就是“显示的”状态,显示的提示条也是激活的。在提示条激活和显示之间有一些延迟。

带有提示条的密码框见Figure 18-1 .

Figure 18-1 Tooltip Added to a Password Field

(翻译)第二十四回 JavaFX2.0 提示条ToolTip
Description of "Figure 18-1 Tooltip Added to a Password Field"

创建Tooltip

研究 Example 18-1 中的代码,它创建的是上面的应用。

 

Example 18-1 Adding a Tooltip to the Password Field

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

 

javafx.scene.control包中的每个控件都具有添加提示条的 setTooltip 方法。可以定义文本,使用Tooltip的构造方法或 setText 方法 。

由于 Tooltip 类继承了Labeled 类,所以不仅可以添加文本,也可以添加图形。 Example 18-2 中的代码块为密码框的提示条添加了图标。

 

Example 18-2 Adding an Icon to a Tooltip

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

 

运行效果见 Figure 18-2

Figure 18-2 Tooltip with an Icon

(翻译)第二十四回 JavaFX2.0 提示条ToolTip
Description of "Figure 18-2 Tooltip with an Icon"

提示条不仅能提供辅助信息,也能呈现数据。

在提示条中呈现数据

 Figure 18-3 中的应用使用显示在提示条中的信息来计算酒店住宿的总费用。

 

Figure 18-3 Calculating Hotel Rates

(翻译)第二十四回 JavaFX2.0 提示条ToolTip
Description of "Figure 18-3 Calculating Hotel Rates"

 

Each checkbox is accompanied by a tooltip.每个复选框有一个提示条,每个提示条显示一个特定预定项目的费用。如果用户选择了复选框,相应的值就加到总数中。当然取消选中后也会从总数中减去。

看下该应用的代码Example 18-3 .

Example 18-3 Using Tooltips to Calculate Hotel Rates

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);    }     @Override    public 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();    }}

 Example 18-4 中的代码加入到 Example 18-3 中来创建一个提示条并分配了一个文本。项目价格的Integer 值被转化成了String 值。

Example 18-4 Setting the Value for a Tooltip

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

可以通过使用CSS来改变其外观。

版权声明

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

热门文章
  • 机房智能化温湿度解决方式之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在接收到请求之后可判断当前用户是登录状态,所以...
标签列表