JavaFX SplitMenuButton控件可以显示用户可以从中选择 的菜单选项列表,以及在选择菜单选项时用户可以单击的按钮。JavaFX SplitMenuButton可以显示或隐藏菜单项。当在SplitMenuButton中单击一个小箭头按钮时,通常会显示菜单项。JavaFX SplitMenuButton 控件由类表示javafx.scene.control.SplitMenuButton。这是 JavaFX 的屏幕截图SplitMenuButton:
JavaFX 拆分菜单按钮 - 图1

创建拆分菜单按钮

在使用 JavaFX 之前,SplitMenuButton您必须创建它的一个实例。以下是创建 JavaFX 的示例SplitMenuButton:

  1. SplitMenuButton splitMenuButton = new SplitMenuButton();

拆分菜单按钮文本

您可以通过其方法设置SplitMenuButton’s 按钮文本。setText()这是设置 JavaFX 的按钮文本的示例SplitMenuButton:

  1. splitMenuButton.setText("Click here!");

SplitMenuButton 字体

JavaFX SplitMenuButton 使您能够设置用于呈现 SplitMenuButton 文本的字体。您可以在我的JavaFX 字体教程中阅读有关在 JavaFX 中创建字体的更多信息。下面是在 JavaFX SplitMenuButton 上设置字体的示例:

  1. SplitMenuButton splitMenuButton = new SplitMenuButton();
  2. Font font = Font.font("Courier New", FontWeight.BOLD, 36);
  3. splitMenuButton.setFont(font);

设置 SplitMenuButton 菜单项

您 可以SplitMenuButton通过 . 每个菜单项都由一个对象表示。这是在 JavaFX 上设置三个菜单项的示例: MenuItemgetItems()MenuItemSplitMenuButton

  1. MenuItem choice1 = new MenuItem("Choice 1");
  2. MenuItem choice2 = new MenuItem("Choice 2");
  3. MenuItem choice3 = new MenuItem("Choice 3");
  4. button.getItems().addAll(choice1, choice2, choice3);

响应菜单项选择

在响应选定的菜单项时, JavaFX 的工作方式与JavaFX MenuButtonSplitMenuButton类似。要响应 JavaFX SplitMenuButton中菜单项的选择,您必须在每个添加到 . 这是通过在其实例上设置操作侦听器来响应 JavaFX 中的菜单项选择的示例: MenuItemSplitMenuButtonSplitMenuButtonMenuItem

  1. MenuItem choice1 = new MenuItem("Choice 1");
  2. MenuItem choice2 = new MenuItem("Choice 2");
  3. MenuItem choice3 = new MenuItem("Choice 3");
  4. choice1.setOnAction((e)-> {
  5. System.out.println("Choice 1 selected");
  6. });
  7. choice2.setOnAction((e)-> {
  8. System.out.println("Choice 2 selected");
  9. });
  10. choice3.setOnAction((e)-> {
  11. System.out.println("Choice 3 selected");
  12. });

在此示例中,操作侦听器只是将文本打印到控制台。在实际应用程序中,您可能希望存储有关选择了哪些操作的信息,或执行其他操作,而不仅仅是将文本打印到控制台。

响应按钮点击

您可以通过在其上设置操作侦听器来响应 JavaFXSplitMenuButton按钮单击。这是在 JavaFX 上设置动作侦听器的示例SplitMenuButton:
splitMenuButton.setOnAction((e) -> { System.out.println(“SplitMenuButton clicked!”); });
此示例使用Java Lambda 表达式 作为操作侦听器。单击按钮时,文本SplitMenuButton clicked!将打印到控制台。

SplitMenuButton 与 MenuButton、ChoiceBox 和 ComboBox

您可能想知道 JavaFXSplitMenuButton和 JavaFX MenuButton、JavaFX ChoiceBox和 JavaFX ComboBox之间有什么区别。我将在下面尝试解释。
和SplitMenuButton控件MenuButton是按钮。这意味着,它们旨在让您的应用程序响应对任一菜单项的单击,或者在SplitMenuButton主按钮或菜单项之一的情况下。当您希望在用户单击/选择菜单项时立即执行操作时,请使用这两个控件之一。SplitMenuButton当其中一个选择比其他选择更频繁时使用。 将按钮部分用于选择最多的选项,将菜单项用于较少选择的选项。
ChoiceBox并且仅 在ComboBox内部存储用户在其菜单项中所做的选择。它们不是为在选择菜单项时立即采取行动而设计的。在用户必须在最终单击“确定”或“取消”按钮之前做出多个选择的表单中使用这些控件。单击其中一个按钮时,您可以读取从 ChoiceBox或中选择的菜单项ComboBox。