我正在尝试通过JavaFX,但仍然有许多 - 可能是愚蠢的 - 初学者问题。
我当天的问题如下:
我在“场景构建器”和“控制器”中创建了一个FlowPane,我想要添加一个右键单击选项,打开一个上下文菜单。
通过场景构建器,我添加了OnContextMenuRequested函数,并在Controller中定义了它。
要检查,我已在功能中添加了打印推荐和对话框,效果很好。
然而,上下文菜单不起作用..
任何人都可以帮忙告诉我我错过了什么?
提前致谢...
public void contextMenu(ContextMenuEvent contextMenuEvent) {
// working fine ..
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information");
alert.setHeaderText("Look");
alert.setContentText("Message");
alert.showAndWait();
// working fine
System.out.println("Hello");
// Context Menu ......... not working
ContextMenu contextMenu = new ContextMenu();
MenuItem quit = new MenuItem("quit");
MenuItem hello = new MenuItem("hello");
contextMenu.getItems().addAll(quit, hello);
contextMenu.setX(10.0);
contextMenu.setY(10.0);
contextMenu.show();
????.setContextMenu(????)
}
答案 0 :(得分:3)
除非你有控件,否则你需要手动显示ContextMenu
""使用ContextMenu
中定义的方法之一:
// contextMenu.setX(10.0);
// contextMenu.setY(10.0);
contextMenu.show((Node) contextMenuEvent.getSource(), contextMenuEvent.getScreenX(), contextMenuEvent.getScreenY());