如何在javaFX中单击菜单后让menuItem保持可见?

时间:2017-04-18 12:06:27

标签: javafx menu menuitem menubar visible

这是我的问题:我正在开发一个javaFX应用程序,我有一个带有2个菜单的MenuBar。 每个菜单都有自己的MenuItems显示,但这些只显示片刻,正是当我点击它们所属的菜单时。 这样,我无法点击MenuItems,因为它们消失得太快。

如果我点击菜单,但是只要我不点击窗口中的其他位置,我怎么能让这些MenuItem保持可见?

提前谢谢

1 个答案:

答案 0 :(得分:0)

尝试CustomMenuItem并将setHideOnClick设置为false:

public class JavaFXApplication84 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        MenuItem menuItem1 = new MenuItem("Open");
        CustomMenuItem customMenuItem = new CustomMenuItem(new Label("Close"));
        customMenuItem.setHideOnClick(false);
        customMenuItem.setOnAction(event -> System.out.println("You clicked me!"));

        Menu menu1 = new Menu("File");
        menu1.getItems().addAll(menuItem1,  customMenuItem);

        Menu menu2 = new Menu("Options");
        Menu menu3 = new Menu("Help");

        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().addAll(menu1, menu2, menu3);            

        StackPane root = new StackPane();
        root.getChildren().add(menuBar);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}