建议一:
您可以使用 ControlsFX SegmentedButton(设置为您喜欢的表情符号的按钮图形):
来自文档:
SegmentedButton 是一个简单的控件,它将一组 ToggleButton 实例强制组合在一起,使它们显示为一个集合按钮(带有子按钮),而不是单个按钮。用一张图片更好地说明这一点:
这个控件上的 API 很少,你基本上像往常一样创建 ToggleButton 实例(不要费心将它们放入 ToggleGroup,因为这是由 SegmentedButton 本身完成的),然后您将这些按钮放在按钮列表中。编写此代码的常用方法如下:
ToggleButton b1 = new ToggleButton("day");
ToggleButton b2 = new ToggleButton("week");
ToggleButton b3 = new ToggleButton("month");
ToggleButton b4 = new ToggleButton("year");
SegmentedButton segmentedButton = new SegmentedButton();
segmentedButton.getButtons().addAll(b1, b2, b3, b4);
一个稍微短一点的方法是将 ToggleButton 实例传递给可变参数构造函数,如下所示:
SegmentedButton segmentedButton = new SegmentedButton(b1, b2, b3, b4);
建议 2:
您可以使用 ControlsFX Rating :
来自文档:
允许用户提供评级的控件。此控件支持部分评级(即不是整数,并且取决于用户在控件中单击的位置)并在悬停时更新评级。
要创建一个如下所示的 Rating 控件很简单:
final Rating rating = new Rating();
这将创建一个默认的水平评级控件。要创建垂直 Rating 控件,只需更改方向,如下所示:
final Rating rating = new Rating();
rating.setOrientation(Orientation.VERTICAL);
您可以继续阅读doc...
建议 3:(不需要第三个库)
您可以使用 5 个 Button 自定义 ToolBar ,每个都有一个 PseudoClass(selected) 并且每次按下其中一个时,其他的都会有 Pseudoclass(selected=false) ,所以用户可以看到选择了哪一个。
所以你可以制作类似于:
如果你想实现它,请阅读这篇文章 -> http://fxexperience.com/2012/02/customized-segmented-toolbar-buttons/