Javafx 2 javafx2中的菜单项工具提示

Javafx 2 javafx2中的菜单项工具提示,javafx-2,Javafx 2,javafx2中有两个问题 如何设置菜单项的工具提示 如何设置菜单项的大小(宽度) 如果您有答案,请告诉我。这两个问题的答案直接发送给该类,该类将包装任意节点并将其放入菜单中。 例如,以下内容在菜单中创建具有特定宽度、高度和工具提示的矩形: public void start(final Stage stage) throws Exception { Group root = new Group(); final Menu menu1 = new Menu("File");

javafx2中有两个问题

  • 如何设置菜单项的工具提示
  • 如何设置菜单项的大小(宽度)

  • 如果您有答案,请告诉我。

    这两个问题的答案直接发送给该类,该类将包装任意节点并将其放入菜单中。 例如,以下内容在菜单中创建具有特定宽度、高度和工具提示的矩形:

    public void start(final Stage stage) throws Exception {
        Group root = new Group();
    
        final Menu menu1 = new Menu("File");
        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().add(menu1);
    
        MenuItem menu12 = new MenuItem("Open");
    
        menu1.getItems().add(menu12);
    
        Rectangle rect = new Rectangle();
        rect.setHeight(100);
        rect.setWidth(100);
    
        Tooltip t = new Tooltip("A Rectangle ToolTip");
        Tooltip.install(rect, t);
    
        CustomMenuItem customMenuItem = new CustomMenuItem(rect);
        customMenuItem.setHideOnClick(false);
    
        menu1.getItems().add(customMenuItem);
    
        root.getChildren().add(menuBar);
        Scene scene = new Scene(root,800,600);
        stage.setScene(scene);
        stage.show();
      }
    
    1-在菜单项上安装工具提示 如您所知,要将工具提示绑定到JavaFX图形对象
    foo

    Tooltip.install(foo, tooltip);
    
    此静态实用程序要求提供的对象扩展节点,而菜单项不扩展节点

    但是,它的CustomMenuItem子类可以解决您的问题。直接引自:

    一种菜单项,通过将节点分配给内容属性,允许在其中嵌入任意节点。CustomMenuItem尝试使任意节点在菜单中显示得更自然。例如,当用户将鼠标悬停在节点上(或使用键盘或其他替代方式导航到节点)时,将自动获得悬停高亮显示

    例如,要创建外观和行为与常规菜单项完全相同的自定义菜单项,请执行以下操作:

    CustomMenuItem openMenuItem = new CustomMenuItem(new Label("Open"));
    
    然后,您可以将工具提示附加到其包装内容(即节点):

    如果要将CustomMenuItem与其他类型的节点一起使用,请务必查看,特别是有关
    setHideOnClick
    的部分,但这不是主题

    2-调整菜单项的大小 不能调整菜单项的大小,但可以使用允许该菜单项的节点,并再次将其包装到自定义菜单项中:

    Label closeLabel = new Label("Close");
    closeLabel.setPrefWidth(400); // Overly large menu item
    CustomMenuItem closeMenuItem = new CustomMenuItem(closeLabel);
    

    你知道为什么加速器不能与
    CustomMenuItem
    配合使用吗?问题:
    Tooltip.install(openMenuItem.getContent(), tooltip);
    
    Label closeLabel = new Label("Close");
    closeLabel.setPrefWidth(400); // Overly large menu item
    CustomMenuItem closeMenuItem = new CustomMenuItem(closeLabel);