import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuButton;
import javafx.scene.control.MenuItem;
import javafx.scene.control.ToolBar;
import javafx.stage.Stage;

public class MenuWidthDemo extends Application {

  private static final String shortText = "Short text";
  private static final String longText = "A long text for demonstration";

  private ToolBar bar = new ToolBar();
  private MenuButton button = new MenuButton("Menu");
  private MenuItem switchItem = new MenuItem("Switch Text");
  private Menu menu = new Menu(shortText);
  private MenuItem otherItem = new MenuItem("other item");
  private MenuItem otherSubItem = new MenuItem("item");
  private Menu otherMenu = new Menu("other Menu");

  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(Stage primaryStage) throws Exception {
    switchItem.setOnAction(event -> {
      if (shortText.equals(menu.getText())) {
        menu.setText(longText);
      } else {
        menu.setText(shortText);
      }
    });

    menu.getItems().add(switchItem);

    button.getItems().add(otherItem);
    button.getItems().add(menu);
    otherMenu.getItems().add(otherSubItem);
    button.getItems().add(otherMenu);

    bar.getItems().add(button);

    Scene scene = new Scene(bar);
    primaryStage.setScene(scene);
    primaryStage.show();
  }
}