隐藏自定义上下文菜单

时间:2014-02-27 11:39:03

标签: javafx javafx-2 javafx-8

我创建了这个用鼠标点击时显示的上下文菜单的简单示例:

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

我注意到当我点击图片附近时,上下文菜单仍然可见。如果上下文菜单正文,我在外面点击时如何隐藏它?

1 个答案:

答案 0 :(得分:1)

将contextMenu.setAutoHide设为true。

contextMenu.setAutoHide(true);