DOC-03-07 选择框(Choice Box)

本章介绍Choice Box组件,它支持从一些选项中作出快速选择。

使用ChoiceBox类添加Choice Box到你的JavaFX应用程序。其简单的实现如图7-1所示。

7-1 创建带有三个选项的Choice Box

3-7-1 choice-box

创建一个Choice Box

7-1创建了一个带三个选项的Choice Box

7-1 创建一个Choice Box

7-1展示了创建一个选项列表并将其传入到ChoiceBox类的一个构造方法中。这个选项列表使用ObservableList来指定其内容。 另外,你也可以使用该类不带参数的构造方法,然后通过setItems方法设置选项列表,如例7-2所示。

7-2 带有文字选项和分隔符的Choice Box

请注意Choice Box不仅可以包含文字选项,也可以包含其它对象。例7-2中使用了一个Separator组件来分隔这些选项。集成上述代码片段到应用程序之后,其运行结果如图7-2所示。

7-2 通过Choice Box创建的菜单

3-7-2 menu

在真实的应用程序中,choice box被用来构建多选项的列表。

Choice Box设置行为

在图7-3所示的应用程序中提供了一个带有5个选项的Choice Box。当选择指定的语言时,将会显示对应语言的问候。

7-3 多选项列表

3-7-3 choice-boxes

7-4 提供了一个代码片段,它解释了如何实现根据Choice Box的被选中项来定义显示哪个问候语。

7-4 选中一个Choice Box选项

3-7-4 choice-box-code

ChangeListener<Number>对象通过连续调用getSelectionModel selectedIndexProperty方法得到当前被选项所索引。 其中getSelectionModel方法返回被选项, selectedIndexProperty方法返回变量名为cb ChoiceBox SELECTED_INDEX 属性。最后,其整数值作为索引可以从greetings 数组中找到一个String元素,并将label的文本设置为此String。例如,如果用户选择了第二个选项,其对应的语言是Spanish,则SELECTED_INDEX属性等于1,而从greetings数组中会找到“Hola”,然后label就会显示为“Hola”

你可以指定一个提示信息(tooltip)ChoiceBox 组件富含更多的信息。Tooltipjavafx.scene.control包中的一个UI组件。它可以被应用到任何JavaFX UI控件之上。

应用提示信息(Tooltip)

Tooltip 类提供了一个预定义的提示信息,它可以通过setTooltip方法很方便地应用到Choice
Box(
或者任何其它控件)之上,如例7-3

7-3 Choice Box添加Tooltip

一般来说,用户定义Tooltip文本的方式是将文本直接传入Tooltip的一个构造方法中。不过如果你的应用程序逻辑需要UI动态地设置文本,你可以使用不带参数的构造方法先创建一个Tooltip ,然后通过setText 方法为其设置文本。

在为变量名为cb代表的Choice
Box
应用了Tooltip之后,用户将鼠标放置在Choice Box之上就会看到如图7-5所示的界面。

7-5 应用了TooltipChoice Box

3-7-5 choice-box-tooltip

如果要进一步改进你的应用程序,你可以使用CSS来为Choice Box增加样式,或者对ChoiceBox应用视觉特效或变换。

相关的API文档

    · ChoiceBox

    · Tooltip

 

 

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/04/doc03_choicebox/
百度已收录