如何在 JavaFX 中创建 SplitMenuButton?
javafxobject oriented programmingprogramming更新于 2026/1/9 21:32:17
菜单是呈现给用户的选项或命令列表,通常菜单包含执行某些操作的项目。菜单的内容称为菜单项,菜单栏包含多个菜单。
按钮控件位于用户界面应用程序中,一般来说,单击按钮时会执行相应的操作。
SplitMenuButton 提供按钮和菜单的功能。它分为两个区域:操作区域和菜单区域。单击任一区域都会显示相应的功能。

您可以通过实例化 javafx.scene.control.SplitMenuButton 类来创建拆分菜单按钮。
示例
以下示例演示了如何创建 SplitMenuButton。
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SplitMenuButton;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class SplitMenuButtonExample extends Application {
public void start(Stage stage) {
//创建 ImageView
ImageView img = new ImageView("UIControls/globe.png");
img.setFitWidth(20);
img.setFitHeight(20);
//创建标签
Label label = new Label("选择语言");
Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);
label.setFont(font);
//创建菜单
SplitMenuButton menu = new SplitMenuButton();
//设置 SplitMenuButton 的文本
menu.setText("Language");
//设置按钮的图像
menu.setGraphic(img);
//创建菜单项
menu.setMnemonicParsing(true);
MenuItem item1 = new MenuItem("Telugu");
MenuItem item2 = new MenuItem("Hindi");
MenuItem item3 = new MenuItem("English");
MenuItem item4 = new MenuItem("Tamil");
MenuItem item5 = new MenuItem("Malayalam");
//将所有菜单项添加到菜单
menu.getItems().addAll(item1, item2, item3, item4, item5);
//将选择框添加到场景中
HBox layout = new HBox(25);
layout.getChildren().addAll(label, menu);
layout.setPadding(new Insets(15, 50, 50, 130));
layout.setStyle("-fx-background-color: BEIGE");
//设置舞台
Scene scene = new Scene(layout, 595, 200);
stage.setTitle("Split Menu Button");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
输出


