在javafx2中的菜单项工具提示

时间:2012-12-18 06:33:17

标签: javafx-2

javafx2中有两个问题..

  1. 如何设置menuitem的工具提示
  2. 如何设置菜单项的大小(宽度)
  3. 如果你有答案,请告诉我。

2 个答案:

答案 0 :(得分:3)

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

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 :(得分:3)

1-在MenuItem上安装工具提示

Tooltip tooltip = new Tooltip("This is a tooltip");

如您所知,将工具提示绑定到JavaFX图形对象foo

Tooltip.install(foo, tooltip);

此静态实用程序要求提供的对象扩展Node MenuItem不

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

  

通过将节点分配给content属性,允许将任意节点嵌入其中的MenuItem。 CustomMenuItem尝试使任意节点在菜单中显得更自然。例如,当用户将鼠标悬停在节点上(或使用键盘或其他替代方式导航到鼠标)时,您会自动进行悬停突出显示。

例如,创建一个CustomMenuItem ,其外观和行为与常规MenuItem完全相同:

CustomMenuItem openMenuItem = new CustomMenuItem(new Label("Open"));

然后,您可以将工具提示附加到其包装内容(这是一个节点):

Tooltip.install(openMenuItem.getContent(), tooltip);

如果您打算将CustomMenuItem与其他类型的节点一起使用,请查看Java doc,特别是关于setHideOnClick的内容,但这不是主题。

2-调整MenuItem的大小

您无法调整MenuItem的大小,但您可以使用允许它的节点,再次将其包装在CustomMenuItem中

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