import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.geometry.Rectangle2D;
import javafx.geometry.Side;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuButton;
import javafx.scene.layout.StackPane;
import javafx.stage.Screen;
import javafx.stage.Stage;

public class MenuBorderTest extends Application {

    @Override
    public void start(Stage stage) {
        Menu menu = new Menu("Root");
        Menu a = new Menu("a");
        Menu b = new Menu("Wide Menu Item");
        Menu c = new Menu("Even wider menu item");
        Menu sub = new Menu("Sub Menu item");
        c.getItems().add(sub);
        Menu sub2 = new Menu("Sub Sub Menu Item");
        sub.getItems().add(sub2);
        menu.getItems().addAll(a, b, c);
        MenuButton btn = new MenuButton("Menu");
        btn.getItems().add(menu);
        btn.setPopupSide(Side.RIGHT);
        StackPane.setAlignment(btn, Pos.TOP_RIGHT);

        Scene scene = new Scene(new StackPane(btn), 300, 400);
        stage.setScene(scene);
        stage.show();

        Rectangle2D bounds = Screen.getPrimary().getBounds();
        stage.setX(bounds.getWidth() - stage.getWidth());
        stage.setY(0);
    }
}
