如何在javaFX中右键单击窗格或ImageView时显示上下文菜单

Raf*_*aie 1 java javafx javafx-2 javafx-8

我正在尝试显示我创建的上下文菜单,当我右键单击窗格或图像视图时((在请求的上下文菜单上)).问题是它们似乎没有setContextMenue方法,不像标签和按钮......等.如何将上下文菜单关联到似乎不接受上下文菜单的节点?

@FXML
Button button1, button2;

@FXML
Pane mainPane;

@FXML
ImageView image;
private void initContextMenu() {
    final ContextMenu contextMenu = new ContextMenu();
    final MenuItem item1 = new MenuItem("open a file");
    final MenuItem item2 = new MenuItem("quit");

    contextMenu.getItems().addAll(item1, item2);

    // not possible
    image.setContextMenu(contextMenu);
    // possible
    button1.setContextMenu(contextMenu)
Run Code Online (Sandbox Code Playgroud)

Jam*_*s_D 5

你可以做

image.setOnContextMenuRequested(e -> 
    contextMenu.show(image, e.getScreenX(), e.getScreenY()));
Run Code Online (Sandbox Code Playgroud)

  • 我实际上是这样解决的。谢谢 imgWidnow.setOnContextMenuRequested(event -> { contextMenu.setY(event.getScreenY()); contextMenu.setX(event.getScreenX()); contextMenu.show(imgWidnow.getScene().getWindow()); }) ; (2认同)