There are two questions in javafx2..
- How to set tooltip for the menuitem
- How to set size (width) for the menu item
Kindly let me know if you have the answer..
There are two questions in javafx2..
Kindly let me know if you have the answer..
这两个问题的答案直接指向类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();
}
Tooltip tooltip = new Tooltip("This is a tooltip");
如您所知,要将 Tooltip 绑定到 JavaFX 图形对象foo
:
Tooltip.install(foo, tooltip);
此静态实用程序需要提供的对象来扩展 Node,而MenuItem 不需要。
但是它的 CustomMenuItem 子类可以解决您的问题。直接引用自CustomMenuItem Java 文档:
通过将 Node 分配给 content 属性,允许在其中嵌入任意节点的 MenuItem。CustomMenuItem 尝试使任意节点在菜单中显得更自然。例如,当用户将鼠标悬停在节点上(或使用键盘或其他替代方式导航到该节点)时,您会自动获得悬停突出显示。
例如,要创建一个外观和行为与常规 MenuItem 完全相同的 CustomMenuItem:
CustomMenuItem openMenuItem = new CustomMenuItem(new Label("Open"));
然后,您可以将 Tooltip 附加到其包装的内容(即节点):
Tooltip.install(openMenuItem.getContent(), tooltip);
如果您打算将 CustomMenuItem 与其他类型的节点一起使用,请查看Java 文档,尤其是 about setHideOnClick
,但这是题外话。
您不能调整 MenuItem 的大小,但可以使用允许它的节点,然后再次将其包装在 CustomMenuItem 中:
Label closeLabel = new Label("Close");
closeLabel.setPrefWidth(400); // Overly large menu item
CustomMenuItem closeMenuItem = new CustomMenuItem(closeLabel);