2017-04-18 95 views
-1

这是我的问题:我正在开发一个javaFX应用程序,我有一个MenuBar 2菜单。 每个菜单都有自己的MenuItems来显示,但这些只是显示片刻,恰好当我点击他们所属的菜单时。 这样,我无法点击MenuItems,因为它们消耗得太快。如何让menuItem在javaFX中单击菜单后保持可见状态?

如何让这些MenuItems不仅在单击菜单时保持可见状态,而且只要不在窗口中的其他位置点击?

THX提前

+0

尝试鼠标移到菜单项? – Sedrick

+0

MenuItems消失太快,只要我释放鼠标点击菜单的名称 – sibly22

回答

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); 
    } 

} 
+0

不幸的是,这似乎并不工作.. – sibly22

+0

我测试它,它工作正常。 – Sedrick

+0

您可能还有其他一些问题。发布可重现您问题的最小且完整的代码。 – Sedrick

相关问题