JavaFX SplitMenuButton
JavaFX SplitMenuButton控件可以显示用户可以选择的菜单选项列表,以及选择菜单选项后用户可以单击的按钮。 JavaFX SplitMenuButton可以显示或者隐藏菜单项。当在SplitMenuButton中单击一个小箭头按钮时,通常会显示菜单项。 JavaFX SplitMenuButton控件由类javafx.scene.control.SplitMenuButton
表示。这是JavaFXSplitMenuButton
的屏幕截图:
创建SplitMenuButton
必须先创建一个JavaFX实例,然后才能使用它。这是创建JavaFXSplitMenuButton
的示例:
SplitMenuButton splitMenuButton = new SplitMenuButton();
设置SplitMenuButton文本
我们可以通过setText()方法设置SplitMenuButton的按钮文本。这是设置JavaFXSplitMenuButton
的按钮文本的示例:
splitMenuButton.setText("Click here!");
设置SplitMenuButton菜单项
我们可以通过getItems()返回的MenuMenu集合来设置菜单项以显示在JavaFX SplitMenuButton的菜单部分中。每个菜单项都由一个" MenuItem"对象表示。这是在JavaFXSplitMenuButton
上设置三个菜单项的示例:
MenuItem choice1 = new MenuItem("Choice 1"); MenuItem choice2 = new MenuItem("Choice 2"); MenuItem choice3 = new MenuItem("Choice 3"); button.getItems().addAll(choice1, choice2, choice3);
响应菜单项选择
在响应选定菜单项时,JavaFXSplitMenuButton
与JavaFX MenuButton的工作方式相似。为了响应对JavaFX SplitMenuButton中菜单项的选择,我们必须在添加到SplitMenuButton中的每个MenuItem上设置一个动作侦听器。这是通过在JavaFXSplitMenuButton
的MenuItem
实例上设置动作侦听器来响应菜单项选择的示例:
MenuItem choice1 = new MenuItem("Choice 1"); MenuItem choice2 = new MenuItem("Choice 2"); MenuItem choice3 = new MenuItem("Choice 3"); choice1.setOnAction((e)-> { System.out.println("Choice 1 selected"); }); choice2.setOnAction((e)-> { System.out.println("Choice 2 selected"); }); choice3.setOnAction((e)-> { System.out.println("Choice 3 selected"); });
在此示例中,动作侦听器仅将文本打印到控制台。在实际的应用程序中,我们可能希望存储有关选择了什么操作的信息,或者执行其他操作,而不是仅将文本打印到控制台。
响应按钮点击
我们可以通过在其上设置动作侦听器来响应JavaFXSplitMenuButton
按钮的单击。这是在JavaFXSplitMenuButton
上设置动作侦听器的示例:
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"中选择的菜单项。