import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.MenuButton; import javafx.scene.control.MenuItem; import javafx.scene.control.NodeMenuItem; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { stage.setHeight(100.0); stage.setWidth(200.0); final Group root = new Group(); Scene scene = new Scene(root); MenuItem mi = new MenuItem("Test 1"); mi.setOnAction(new EventHandler() { public void handle(ActionEvent e) { System.out.println("FOO 1"); } }); Rectangle rect = new Rectangle(30, 15); rect.setFill(Color.BLACK); final NodeMenuItem nmi = new NodeMenuItem(rect); nmi.setOnAction(new EventHandler() { public void handle(ActionEvent e) { System.out.println("FOO 2"); } }); MenuButton smb = new MenuButton(); smb.setText("MenuButton"); //smb.setUseSelectedItem(false); smb.getItems().addAll(mi, nmi); root.getChildren().addAll(smb); stage.setScene(scene); stage.setVisible(true); } }