JavaFX 下拉按钮

标签 java javafx imagebutton

如何在 JavaFX 中创建“下拉按钮”?

到目前为止,我一直在使用 ChoiceBox,现在我必须将图像分配给 ChoiceBox

ChoiceBox.setGraphic() // is not available as like Buttons

所以我打算将其更改为下拉按钮。这样我就可以为它设置一个图标。

我正在使用 SceneBuilder 设计 UI。

没有帮助搜索如何使用 JavaFX 创建下拉按钮。

最佳答案

如果您不必像在 ChoiceBox 中那样存储选择,您可以使用例如 MenuButton控制。

MenuButton is a button which, when clicked or pressed, will show a ContextMenu.

MenuButton 具有 graphicProperty你提到它的基类是 Labeled

简单示例

final Image image = new Image(getClass().getResource("cross_red.png").toExternalForm(), 20, 20, true, true);
MenuButton menuButton = new MenuButton("Don't touch this");
menuButton.setGraphic(new ImageView(image));
menuButton.getItems().addAll(new MenuItem("Really"), new MenuItem("Do not"));

这将产生一个如下所示的按钮:

enter image description here

注意:如果您需要按钮也像一个真正的按钮,您可以从 MenuButton 切换到 SplitMenuButton .唯一的区别是控制字段被分成按钮部分和下拉部分(因此您也可以为标题分配一个 Action ):

The SplitMenuButton, like the MenuButton is closely associated with the concept of selecting a MenuItem from a menu. Unlike MenuButton, the SplitMenuButton is broken into two pieces, the "action" area and the "menu open" area.

If the user clicks in the action area, the SplitMenuButton will act similarly to a Button, firing whatever is associated with the ButtonBase.onAction property.

关于JavaFX 下拉按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163881/

相关文章:

java - java 中的 NullPointerException (javafx)

java - 从 DataInputStream 读取几个 byte[]

java - 如何从一个 JavaFX 选项卡对数据库添加的内容反射(reflect)在不同的 JavaFX 选项卡中?

android - 我如何将 ImageButton 设置为仅在我的手指触摸它时更改

java - 在 Android OnClickListener 匿名类中使用循环索引创建 ImageButtons 网格

java - 单击时如何更改图像按钮背景?

java - 尽管刷新了 OutputStream,新的 ObjectInputStream 仍会阻塞

Java/JavaFX 绕过 Final 或有效 Final,这是一个好方法吗?

Java 应用程序仅在事件线程上允许此操作错误

java - 尽管有 WRITE_SETTINGS 权限代码,应用程序在 Android OS v7.1 中仍会崩溃