JavaFx 从控制器添加上下文菜单
JavaFx add context menu from controller
我正在尝试通过 JavaFX,但仍然有很多(可能很愚蠢)初学者问题。
我今天的问题如下:
我正在场景生成器和控制器中创建一个 FlowPane,我想在其中添加一个右键单击选项,它会打开一个上下文菜单。
通过场景生成器,我添加了函数 OnContextMenuRequested 并将其定义在控制器中。
为了检查,我在函数中添加了一个打印命令和一个对话框,效果很好。
然而,上下文菜单不起作用..
任何人都可以帮助并告诉我我错过了什么???
提前致谢...
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(????)
}
除非您有控件,否则您需要使用 ContextMenu
:
中定义的方法之一来显示 ContextMenu
"manually"
// contextMenu.setX(10.0);
// contextMenu.setY(10.0);
contextMenu.show((Node) contextMenuEvent.getSource(), contextMenuEvent.getScreenX(), contextMenuEvent.getScreenY());
我正在尝试通过 JavaFX,但仍然有很多(可能很愚蠢)初学者问题。
我今天的问题如下:
我正在场景生成器和控制器中创建一个 FlowPane,我想在其中添加一个右键单击选项,它会打开一个上下文菜单。
通过场景生成器,我添加了函数 OnContextMenuRequested 并将其定义在控制器中。
为了检查,我在函数中添加了一个打印命令和一个对话框,效果很好。
然而,上下文菜单不起作用..
任何人都可以帮助并告诉我我错过了什么???
提前致谢...
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(????)
}
除非您有控件,否则您需要使用 ContextMenu
:
ContextMenu
"manually"
// contextMenu.setX(10.0);
// contextMenu.setY(10.0);
contextMenu.show((Node) contextMenuEvent.getSource(), contextMenuEvent.getScreenX(), contextMenuEvent.getScreenY());