我创建了这个用鼠标点击时显示的上下文菜单的简单示例:
Image image = new Image("http://docs.oracle.com/javafx/"
+ "javafx/images/javafx-documentation.png");
ImageView pic = new ImageView();
pic.setImage(image);
final ContextMenu cm = new ContextMenu();
MenuItem cmItem1 = new MenuItem("Copy Image");
cmItem1.setOnAction(new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e)
{
Clipboard clipboard = Clipboard.getSystemClipboard();
ClipboardContent content = new ClipboardContent();
content.putImage(pic.getImage());
clipboard.setContent(content);
}
});
cm.getItems().add(cmItem1);
pic.addEventHandler(MouseEvent.MOUSE_CLICKED,
new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent e)
{
if (e.getButton() == MouseButton.SECONDARY)
cm.show(pic, e.getScreenX(), e.getScreenY());
}
});
我注意到当我点击图片附近时,上下文菜单仍然可见。如果上下文菜单正文,我在外面点击时如何隐藏它?
答案 0 :(得分:1)
将contextMenu.setAutoHide设为true。
contextMenu.setAutoHide(true);