Java 如何将上下文菜单添加到画布元素?

Java 如何将上下文菜单添加到画布元素?,java,javafx,contextmenu,java-canvas,Java,Javafx,Contextmenu,Java Canvas,问题:不可能通过addContextMenu(菜单)简单地将ContextMenu“添加”到画布或窗格元素,该菜单仅适用于javafx.scene.control元素(画布或面板均不扩展此类) 问题:是否有任何“干净”的方法将上下文菜单项“注册”到画布元素?我希望此菜单的标准行为(在RMB单击画布元素后显示,使用LMB单击时自动隐藏等)。也许您可以使用Chrome extension的contextMenu。这是 到目前为止,我发现的唯一问题是画布的上下文类型不清楚。[“all”]可以工作,但不

问题:不可能通过addContextMenu(菜单)简单地将ContextMenu“添加”到画布或窗格元素,该菜单仅适用于javafx.scene.control元素(画布或面板均不扩展此类)


问题:是否有任何“干净”的方法将上下文菜单项“注册”到画布元素?我希望此菜单的标准行为(在RMB单击画布元素后显示,使用LMB单击时自动隐藏等)。

也许您可以使用Chrome extension的contextMenu。这是


到目前为止,我发现的唯一问题是画布的上下文类型不清楚。[“all”]可以工作,但不是一个好方法。

James\u D的解决方案可能不会在上下文菜单可见的情况下单击画布时关闭菜单。请参见此错误:

因此,我建议使用:

Canvas canvas = ... ;
ContextMenu menu = ... ;

canvas.setOnContextMenuRequested(e -> menu.show(canvas.getScene().getWindow(), e.getScreenX(), e.getScreenY()));

隐马尔可夫模型。。从未听说chrome支持fx?
Canvas canvas = ... ;
ContextMenu menu = ... ;

canvas.setOnContextMenuRequested(e -> menu.show(canvas.getScene().getWindow(), e.getScreenX(), e.getScreenY()));